|
|
Wyszukiwanie wartości w tablicach 2D |
|
No dobra, powiedzmy, że mamy następującą tabelę:
|
A |
B |
C |
D |
E |
F |
G |
1 |
|
a1 |
a2 |
b |
c1 |
c2 |
c3 |
2 | X1 | 1 | 2 | 3 | 4 | 5 | 6 |
3 | X2 | 7 | 8 | 9 | 10 | 11 | 12 |
4 | Y1 | 13 | 14 | 15 | 165 | 17 | 18 |
5 | Y2 | 19 | 20 | 21 | 22 | 23 | 24 |
i chcemy w niej znaleźć wartości mając podane identyfikator wiersza (tutaj: X1 do Y2) i kolumny (tutaj: a1 do c3).
Dwie funkcje okażą się tutaj pomocne:
- PODAJ.POZYCJĘ - zwraca pozycję wartości w tablicy lub liście,
- INDEKS - zwraca wartość z tablicy na podstawie indeksu.
PODAJ.POZYCJĘ użyjemy do znalezienia wiersza i kolumny,
następnie INDEKS do znalezienia wartości na przecięciu tych dwóch.
Zatem, załóżmy, że szukamy wartości w kolumnie b i wierszu X2:
- PODAJ.POZYCJĘ("b"; B1:G1; 0) zwraca 3 (trzecia kolumna tabeli);
trzeci parametr - 0 - oznacza, że szukamy dokładnie tej wartości ("b"),
- PODAJ.POZYCJĘ("X2"; A2:A5; 0) zwraca 2 (drugi wiersz tabeli),
Mając te dwie wartości, można skorzystać z funkcji INDEKS do znalezienia naszej wartości:
INDEKS(B2:G5; PODAJ.POZYCJĘ("X2"; A2:A5; 0); PODAJ.POZYCJĘ("b"; B1:G1; 0)) daje... 9!
(Zwróć uwagę, że w Excelu najpierw przekazuje się pozycję wiersza, potem kolumny.)
HTH (MNŻTP)
Góra
|
Komentarze |
#1
Mario
napisał(a) dnia
2009-02-25 10:37:23
|
Czesc :) widze ze przerzuciles sie na Excela :)
to wale poprawke (trzeba w index jeszcze podac zakres tabeli zeby bylo dobrze :)): INDEX(B2:G5, MATCH("X2", A2:A5, 0), MATCH("b", B1:G1, 0))
Pozdro, Mario
|
#2
Trybik
napisał(a) dnia
2009-02-25 11:02:36
|
Dzięki! Poprawione też w tekście.
|
|
Góra |
|
Góra
|
|
|