MILESIU pisze:Te funkcje tez wydaja sie przekombinowane, a ja mam 20 kolumn do tej operacji.
to popatrz jaką formułę teraz wymyśliłem:
Kod: Zaznacz cały
=POŁĄCZ.TEKSTY(",";1;JEŻELI(CZĘSTOŚĆ(PODAJ.POZYCJĘ($B2:$E2;$B2:$E2;0); WIERSZ($A$1:$A4)); TRANSPONUJ($B2:$E2); ""))
Formuła bardzo prosta

, tak prosta że dla jasności będę ją wyjaśniał po kawałku :
A więc na początek funkcja
POŁĄCZ.TEKSTY(",";1;ZAKRES) (funkcja ta jest dostępna tylko w LO)
- parametr pierwszy -","- wpisujesz jaki znak ma być separatorem,
- parametr drugi - 1 - oznacza, że mają być pominięte puste komórki,
- parametr trzeci - ZAKRES - jakiś zakres komórek, z których wartości mają być połączone w jeden tekst.
Teraz twoim
ZAKRESEM mają być niepowtarzalne wartości z jakiegoś wiersza danych, uzyskuję go przy pomocy funkcji:
JEŻELI(WARUNEK, TRANSPONUJ($B2:$E2); "") czyli JEŻELI jakiś WARUNEK jest spełniony (a konkretniej: czy dana wartość z kolejnych pozycji jest unikalna) to ma być przepisana wartość z
PIONOWEGO zakresu danych w przeciwnym razie ma być podana pusta wartość "". A ma być z PIONOWEGO dlatego, gdyż funkcja z warunku zwraca tylko pionową macierz danych niezależnie od dostarczanych parametrów...
No to teraz
WARUNEK, został on utworzony przy pomocy funkcji
CZĘSTOŚĆ(DANE, KLASY). Ta funkcja pomaga podsumowywać zbiór jakiś DANYCH, np powiedzmy że w arkuszu masz zestawienie wyników z jakiegoś sprawdzianu. Dzięki tej jednej funkcji możesz dowiedzieć się ile osób dostało np ocenę <= 2, z przedziału 3÷4 a ile >=5, albo też wymienić ile osób dostało konkretną ocenę.
Wracając do twojego przypadku, ta funkcja jest przeznaczona dla liczb, dlatego zamienię twoje wartości tekstowe na informację: na której pozycji znajduje się pierwsze wystąpienie danego tekstu, czyli
DANYMI będą wyniki funkcji:
PODAJ.POZYCJĘ($B2:$E2;$B2:$E2;0)
Kod: Zaznacz cały
wiersz danych: na ma na da został zastąpiony danymi: 1 2 1 4
I teraz jeszcze musisz podać
KLASĘ, czyli jakie wyniki cię interesują; chcesz poznać ile razy(*) została wymieniona każda pozycja z unikalną wartością: 1,2,3, ... itd - tyle kolejnych liczb ile pozycji miałeś w DANYCH. Kolejne numery dla KLASY otrzymasz przy pomocy funkcji
KOLUMNA($A2:$E2)WIERSZ($A$1:$A4). WAŻNE zawsze od
pierwszej kolumny Apierwszego wiersza.
Wyniki częstości dla tego przykładu to pionowy zakres danych mówiący ile razy wystąpiła dana liczba:
Kod: Zaznacz cały
1 ---> 2
2 ---> 1
3 ---> 0
4 ---> 1
---> 0 ile było liczb większych od 4
(*)W funkcji JEŻELI tak naprawdę nie interesuje cię, ile została wymieniona jakaś pozycja tylko czy w ogóle wystąpiła. Przypadek gdy warunek jest liczbą większą od 0 jest traktowany jako PRAWDA, a zero to FAŁSZ
Mam nadzieję, że teraz to jasne...
EDIT:
Po zastanowieniu postanowiłem zamienić funkcję KOLUMNA() funkcją WIERSZ(). Myślę, że łatwiej zaznaczyć 4 czy też 100 wierszy, niż 4 czy też 100 kolumn. A propo: która to kolumna jest 100???
(odp: po sprawdzeniu CV)