Z WYSZUKAJ.PIONOWO
jest taki problem, że wyniki szukania muszą się znajdować w kolumnach po kolumnie na podstawie której szukamy dane. Jeżeli kolumna na podstawie której szukamy dane to kolumna C a dane są w A i B to możemy użyć:
Arkusz z którego pobieramy dane. Aby funkcja działała arkusz musi mieć nazwę dane_szukane.
- | A | B | C |
---|---|---|---|
1 | Ksywa | Płeć | PESEL |
2 | Johny | Facet | 1234 |
3 | Lola | Baba | 4321 |
4 | Jenny | Baba | 1432 |
5 | Adam | Facet | 3241 |
6 | Stefan | Facet | 1122 |
Dane w kolumnie C
powinny być danymi unikalnymi jednoznacznie określającymi numer rekordu z szukanymi danymi.
W poniższym arkuszu o dowolnej nazwie wprowadzamy funkcje
=INDEKS($dane_szukane.A$2:A$6;PODAJ.POZYCJĘ(A2;$dane_szukane.C$2:C$6;0)) dla kolumny A =INDEKS($dane_szukane.B$2:B$6;PODAJ.POZYCJĘ(A2;$dane_szukane.C$2:C$6;0)) dla kolumny B
- | A | B | C |
---|---|---|---|
1 | PESEL | Ksywa | Płeć |
2 | 1432 | =INDEKS($dane_szukane.A$2:A$6;PODAJ.POZYCJĘ(A2;$dane_szukane.C$2:C$6;0)) | =INDEKS($dane_szukane.B$2:B$6;PODAJ.POZYCJĘ(A2;$dane_szukane.C$2:C$6;0)) |
3 | 3241 | =INDEKS($dane_szukane.A$2:A$6;PODAJ.POZYCJĘ(A3;$dane_szukane.C$2:C$6;0)) | =INDEKS($dane_szukane.B$2:B$6;PODAJ.POZYCJĘ(A3;$dane_szukane.C$2:C$6;0)) |
4 | 1122 | =INDEKS($dane_szukane.A$2:A$6;PODAJ.POZYCJĘ(A4;$dane_szukane.C$2:C$6;0)) | =INDEKS($dane_szukane.B$2:B$6;PODAJ.POZYCJĘ(A4;$dane_szukane.C$2:C$6;0)) |
5 | 1234 | =INDEKS($dane_szukane.A$2:A$6;PODAJ.POZYCJĘ(A5;$dane_szukane.C$2:C$6;0)) | =INDEKS($dane_szukane.B$2:B$6;PODAJ.POZYCJĘ(A5;$dane_szukane.C$2:C$6;0)) |
6 | 4321 | =INDEKS($dane_szukane.A$2:A$6;PODAJ.POZYCJĘ(A6;$dane_szukane.C$2:C$6;0)) | =INDEKS($dane_szukane.B$2:B$6;PODAJ.POZYCJĘ(A6;$dane_szukane.C$2:C$6;0)) |
Otrzymamy poniższy wynik
- | A | B | C |
---|---|---|---|
1 | PESEL | Ksywa | Płeć |
2 | 1432 | Jenny | Baba |
3 | 3241 | Adam | Facet |
4 | 1122 | Stefan | Facet |
5 | 1234 | Johny | Facet |
6 | 4321 | Lola | Baba |
Dane w kolumnie A
mogą się powtarzać ale wówczas otrzymamy zdublowane wyniki wyszukiwania.
W pozostałych kolumnach otrzymujemy wynik działania w/w funkcji.
Uzupełnienie o funkcję ADR.POŚR
i NIEPUSTE
. W niektórych wersjach ILE.NIEPUSTYCH
.
=INDEKS(ADR.POŚR("$dane_szukane.A$2:A" & NIEPUSTE($dane_szukane.$C:$C));PODAJ.POZYCJĘ(A2;ADR.POŚR("$dane_szukane.C$2:C" & NIEPUSTE($dane_szukane.$C:$C));0)) dla kolumny A =INDEKS(ADR.POŚR("$dane_szukane.B$2:B" & NIEPUSTE($dane_szukane.$C:$C));PODAJ.POZYCJĘ(A2;ADR.POŚR("$dane_szukane.C$2:C" & NIEPUSTE($dane_szukane.$C:$C));0)) dla kolumny B
Uzupełnienie o funkcję JEŻELI.BRAK
.
=JEŻELI.BRAK(INDEKS(ADR.POŚR("$dane_szukane.A$2:A" & NIEPUSTE($dane_szukane.$C:$C));PODAJ.POZYCJĘ(A2;ADR.POŚR("$dane_szukane.C$2:C" & NIEPUSTE($dane_szukane.$C:$C));0));"BRAK DANYCH") dla kolumny A =JEŻELI.BRAK(INDEKS(ADR.POŚR("$dane_szukane.B$2:B" & NIEPUSTE($dane_szukane.$C:$C));PODAJ.POZYCJĘ(A2;ADR.POŚR("$dane_szukane.C$2:C" & NIEPUSTE($dane_szukane.$C:$C));0));"BRAK DANYCH") dla kolumny B
Jeśli komórka nie zawiera danych pojawia nam się „zero”
. Aby temu zaradzić można dodać funkcję JEŻELI
.
=JEŻELI.BRAK(JEŻELI(INDEKS(ADR.POŚR("$dane_szukane.A$2:A" & NIEPUSTE($dane_szukane.$C:$C));PODAJ.POZYCJĘ(A2;ADR.POŚR("$dane_szukane.C$2:C" & NIEPUSTE($dane_szukane.$C:$C));0))=0;"";INDEKS(ADR.POŚR("$dane_szukane.A$2:A" & NIEPUSTE($dane_szukane.$C:$C));PODAJ.POZYCJĘ(A2;ADR.POŚR("$dane_szukane.C$2:C" & NIEPUSTE($dane_szukane.$C:$C));0)));"BRAK DANYCH")
Także, funkcja INDEKS może zastąpić WYSZUKAJ.PIONOWO, ale wymaga użycia jej w połączeniu z PODAJ.POZYCJĘ. Jest to bardziej elastyczne rozwiązanie, ponieważ:
Jeżeli masz problem działąniem funkcji sprawdź porównywane komórki za pomocą CZY.LICZBA