Która komórka ma najwiecej znaków? formuła?
-
- Posty: 58
- Rejestracja: czw gru 13, 2018 12:15 am
Która komórka ma najwiecej znaków? formuła?
Witam, mam takie pytanie, mam 5 kolumn, i w kazdym wierszu kolumny znajduje sie dana nazwa jak w zalaczniku.
Co zrobic zeby w kolumnie G, lub jakiejs innej dalej, fomula wskazala mi ktora komorka ma najwiecej znakow, ew najwiecej znaku ">" i ja mi pokazal, lub wyindeksowal?
Czyli cos w stylu: wskaz ktora komorka ma najwiecej znakow, lub znaku ">" i pokaz ja.
Co zrobic zeby w kolumnie G, lub jakiejs innej dalej, fomula wskazala mi ktora komorka ma najwiecej znakow, ew najwiecej znaku ">" i ja mi pokazal, lub wyindeksowal?
Czyli cos w stylu: wskaz ktora komorka ma najwiecej znakow, lub znaku ">" i pokaz ja.
- Załączniki
-
- kategorie chwilowy.ods
- (14.06 KiB) Pobrany 164 razy
OpenOffice 4.1.6 Windows 10
Re: Która komórka ma najwiecej znaków? formuła?
Odpowiem na to pytanie:
Wynikiem tej formuły będzie numer kolumny w której jest wpisanych najwięcej znaków.
Jak to działa:
Dla danego zakresu (A1:F1) jest tworzona macierz danych, w której jest wartości zależą od ilości znaków występujących w danej komórce DŁ(A1:F)). Jeżeli jest ona największa MAKS(DŁ(A1:F1)) zostaje podana informacja w której kolumnie się ona znajduje, w przeciwnym razie jest ustawiana wartość 0. Z tak utworzonego zbioru danych wybierana jest znowu wartość maksymalna, dlatego jeżeli wystąpi kilka wartości maksymalnych zostanie podana ostatnia wartość maks.
Ponieważ jest to formuła macierzowa zwykłe przeciągniecie formuły do poniższych komórek nie podziała. Podczas przeciągania należy mieć wciśnięty klawisz CTRL
DŁ(A1) - oblicza liczbę znaków z komórki;
PODSTAW(A1;">";"") - zamień znaki ">" na "", czyli są usunięte wszystkie znaki ">"
DŁ(A1) - DŁ(PODSTAW(A1;">";"")) - ta formuła obliczy o ile znaków nowy ciąg jest krótszy.
Czyli:
Pamiętaj:
zatwierdź formuły wciskając jednocześnie klawisze CTRL+Shift+Enter
Podczas przeciągania formuł należy mieć wciśnięty klawisz CTRL
Wymyśliłem taką formułę macierzową, wklej do jakiejś komórki poniższą formułę i zatwierdź ją wciskając jednocześnie klawisze CTRL+Shift+Enter:Dawidek990 pisze:ktora komorka ma najwiecej znakow,
Kod: Zaznacz cały
=MAKS(JEŻELI(DŁ(A1:F1)=MAKS(DŁ(A1:F1));KOLUMNA(A1:F1) ;0))
Jak to działa:
Dla danego zakresu (A1:F1) jest tworzona macierz danych, w której jest wartości zależą od ilości znaków występujących w danej komórce DŁ(A1:F)). Jeżeli jest ona największa MAKS(DŁ(A1:F1)) zostaje podana informacja w której kolumnie się ona znajduje, w przeciwnym razie jest ustawiana wartość 0. Z tak utworzonego zbioru danych wybierana jest znowu wartość maksymalna, dlatego jeżeli wystąpi kilka wartości maksymalnych zostanie podana ostatnia wartość maks.
Ponieważ jest to formuła macierzowa zwykłe przeciągniecie formuły do poniższych komórek nie podziała. Podczas przeciągania należy mieć wciśnięty klawisz CTRL
w tym przypadku można postąpić analogicznie, z tym że trzeba będzie obliczyć ile jest tych znaków ">". Do tego celu wykorzysta się formuły:Dawidek990 pisze:ew najwiecej znaku ">"
DŁ(A1) - oblicza liczbę znaków z komórki;
PODSTAW(A1;">";"") - zamień znaki ">" na "", czyli są usunięte wszystkie znaki ">"
DŁ(A1) - DŁ(PODSTAW(A1;">";"")) - ta formuła obliczy o ile znaków nowy ciąg jest krótszy.
Czyli:
Kod: Zaznacz cały
=MAKS(JEŻELI((DŁ(A1:F1)-DŁ(PODSTAW(A1:F1;">";""))) =MAKS (DŁ(A1:F1)-DŁ(PODSTAW(A1:F1;">";""))) ;KOLUMNA(A1:F1);0))
zatwierdź formuły wciskając jednocześnie klawisze CTRL+Shift+Enter
Podczas przeciągania formuł należy mieć wciśnięty klawisz CTRL
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Re: Która komórka ma najwiecej znaków? formuła?
Tak trochę z ciekawości przyjrzałem się tematowi.
Oto moja propozycja znajdowania komórki, która zawiera najwięcej znaków.
Tak jak i @Rafkus wykorzystałem formułę macierzową. Ostateczny kształt w załączonym pliku.
Najpierw wyznaczam ten adres komórki w wierszu, w którym jest najwięcej znaków. Ta formuła wygląda tak:
Ona wyznacza od razu adres komórki. PODAJ.POZYCJĘ określa na którym miejscu wektora długości znajduje się wartość maksymalna. W przypadku tego rozwiązania może to być liczba od 1 do 6. Ponieważ kod litery "A" to 65, to do stałej 64 dodaję otrzymaną pozycję i tak utworzona liczba jest argumentem funkcji ZNAK uzupełnionej o numer wiersza , w którym formulę zbudowano.
W ten sposób utworzyłem wektor adresów komórek o najdłuższych tekstach w poszczególnych wierszach.
Następnie wyznaczam adres komórki, w której jest najwięcej znaków w całym tym obszarze. To realizuje także formuła macierzowa:
Tutaj funkcja INDEKS zwraca zawartość tej komórki wektora wynikowego otrzymanego z poprzednich formuł, która odpowiada najdłuższemu tekstowi.
Przykład w załączniku.
Oto moja propozycja znajdowania komórki, która zawiera najwięcej znaków.
Tak jak i @Rafkus wykorzystałem formułę macierzową. Ostateczny kształt w załączonym pliku.
Najpierw wyznaczam ten adres komórki w wierszu, w którym jest najwięcej znaków. Ta formuła wygląda tak:
Kod: Zaznacz cały
{=ZNAK(PODAJ.POZYCJĘ(MAKS(DŁ(A1:F1));DŁ(A1:F1);0)+64)&WIERSZ(A1)}
W ten sposób utworzyłem wektor adresów komórek o najdłuższych tekstach w poszczególnych wierszach.
Następnie wyznaczam adres komórki, w której jest najwięcej znaków w całym tym obszarze. To realizuje także formuła macierzowa:
Kod: Zaznacz cały
{=INDEKS(G1:G5;PODAJ.POZYCJĘ(MAKS(DŁ(ADR.POŚR(G1:G5)));DŁ(ADR.POŚR(G1:G5));0);1)}
Przykład w załączniku.
- Załączniki
-
- Dawidek990 kategorie chwilowy.ods
- (14.71 KiB) Pobrany 145 razy
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Re: Która komórka ma najwiecej znaków? formuła?
Pozwolę sobie usprawnić nieco pierwszą formułę @Jermora:
Ciągle jest to formuła macierzowa.
Kod: Zaznacz cały
{=ADRES( WIERSZ(C1); PODAJ.POZYCJĘ( MAKS(DŁ(A1:F1)); DŁ(A1:F1); 0); 4)}
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Re: Która komórka ma najwiecej znaków? formuła?
@Rafkus - super!
Dalsze uproszczenie, wynikające z tego, że wynik jest w tym samym wierszu może polegać na opuszczeniu argumentu funkcji WIERSZ.
No i oczywiście wykorzystując ten schemat można łatwo utworzyć formułę znajdująca najwięcej znaków ">"
Dalsze uproszczenie, wynikające z tego, że wynik jest w tym samym wierszu może polegać na opuszczeniu argumentu funkcji WIERSZ.
No i oczywiście wykorzystując ten schemat można łatwo utworzyć formułę znajdująca najwięcej znaków ">"
Kod: Zaznacz cały
=ADRES(WIERSZ();PODAJ.POZYCJĘ(MAKS(DŁ(A1:F1)-DŁ(PODSTAW(A1:F1;">";"")));DŁ(A1:F1)-DŁ(PODSTAW(A1:F1;">";""));0);4)
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Re: Która komórka ma najwiecej znaków? formuła?
Piękne; kluczowe jest obliczenie pozycji maksimum w locie:Rafkus pisze:Kod: Zaznacz cały
{=ADRES( WIERSZ(C1); PODAJ.POZYCJĘ( MAKS(DŁ(A1:F1)); DŁ(A1:F1); 0); 4)}
Kod: Zaznacz cały
PODAJ.POZYCJĘ( MAKS(DŁ(obszar)); DŁ(obszar); 0)
Można by próbować zdobyć adresy wszystkich takich wystąpień, ale wątpię czy jest to temat warty opracowywania formułą.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)