Strona 1 z 1

Która komórka ma najwiecej znaków? formuła?

: śr lut 19, 2020 5:00 pm
autor: Dawidek990
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.

Re: Która komórka ma najwiecej znaków? formuła?

: śr lut 19, 2020 11:10 pm
autor: Rafkus
Odpowiem na to pytanie:
Dawidek990 pisze:ktora komorka ma najwiecej znakow,
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:

Kod: Zaznacz cały

=MAKS(JEŻELI(DŁ(A1:F1)=MAKS(DŁ(A1:F1));KOLUMNA(A1:F1) ;0))
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
Dawidek990 pisze:ew najwiecej znaku ">"
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:
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))
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

Re: Która komórka ma najwiecej znaków? formuła?

: pn mar 02, 2020 3:56 pm
autor: Jermor
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:

Kod: Zaznacz cały

{=ZNAK(PODAJ.POZYCJĘ(MAKS(DŁ(A1:F1));DŁ(A1:F1);0)+64)&WIERSZ(A1)}
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:

Kod: Zaznacz cały

{=INDEKS(G1:G5;PODAJ.POZYCJĘ(MAKS(DŁ(ADR.POŚR(G1:G5)));DŁ(ADR.POŚR(G1:G5));0);1)}
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.

Re: Która komórka ma najwiecej znaków? formuła?

: wt mar 03, 2020 8:50 am
autor: Rafkus
Pozwolę sobie usprawnić nieco pierwszą formułę @Jermora:

Kod: Zaznacz cały

{=ADRES( WIERSZ(C1);  PODAJ.POZYCJĘ( MAKS(DŁ(A1:F1));  DŁ(A1:F1);  0);  4)}
Ciągle jest to formuła macierzowa.

Re: Która komórka ma najwiecej znaków? formuła?

: wt mar 03, 2020 12:05 pm
autor: Jermor
@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 ">"

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)

Re: Która komórka ma najwiecej znaków? formuła?

: wt mar 03, 2020 1:04 pm
autor: Jan_J
Rafkus pisze:

Kod: Zaznacz cały

{=ADRES( WIERSZ(C1);  PODAJ.POZYCJĘ( MAKS(DŁ(A1:F1));  DŁ(A1:F1);  0);  4)}
Piękne; kluczowe jest obliczenie pozycji maksimum w locie:

Kod: Zaznacz cały

PODAJ.POZYCJĘ( MAKS(DŁ(obszar));  DŁ(obszar);  0)
Reszta to opakowanie.
Można by próbować zdobyć adresy wszystkich takich wystąpień, ale wątpię czy jest to temat warty opracowywania formułą.