
Všeobecný vzorec
(=INDEX(rng1,MATCH(1,($A1=rng2)*(B$1=rng3),0)))
Zhrnutie
Ak chcete vykonať vyhľadávanie podľa viacerých kritérií a transponovať výsledky do tabuľky, môžete použiť maticový vzorec založený na indexoch INDEX a MATCH. V zobrazenom príklade je vzorec v G5:
(=INDEX(amount,MATCH(1,($F5=location)*(G$4=date),0)))
Upozorňujeme, že tento vzorec je maticový vzorec a musí byť zadaný pomocou klávesov Control + Shift + Enter.
Tento vzorec tiež používa tri pomenované rozsahy: umiestnenie = B5: B13, množstvo = D5: D13, dátum = C5: C13
Vysvetlenie
Jadrom tohto vzorca je INDEX, ktorý načítava hodnotu z pomenovaného rozsahu „suma“ (B5: B13):
=INDEX(amount,row_num)
kde row_num je vypracované s funkciou MATCH a logickou logikou:
MATCH(1,($F5=location)*(G$4=date),0)
V tomto úryvku sa umiestnenie vo F5 porovnáva so všetkými umiestneniami a dátum v G4 sa porovnáva so všetkými dátumami. Výsledkom je v každom prípade pole hodnôt TRUE a FALSE. Keď sa tieto polia vynásobia, matematická operácia vynúti hodnoty TRUE a FALSE na svoje jedničky a nuly, takže vyhľadávacie pole vstupujúce do MATCH vyzerá takto:
(1;0;0;0;0;0;0;0;0)
ZÁPAS je nastavený na zhodu 1 ako presnú zhodu a vráti pozíciu na INDEX ako číslo riadku. Číslo 1 funguje ako vyhľadávacia hodnota, pretože pole teraz obsahuje iba jednotky 1 a 0, ako je uvedené vyššie.
F5 a G4 sa zadávajú ako zmiešané referencie, aby bolo možné vzorec kopírovať cez tabuľku bez úprav.
Transponovať pastou špeciálne
Ak potrebujete iba raz transponovať tabuľku, nezabudnite, že môžete použiť pastu špeciálnu.