Formula Excel: Returnează matricea cu funcția INDEX -

Cuprins

Formula generică

=SUM(INDEX(range,N(IF(1,(1,2,3)))))

rezumat

Pentru ca INDEX să returneze o serie de articole către o altă funcție, puteți utiliza un truc obscur bazat pe funcțiile IF și N. În exemplul prezentat, formula din E5 este:

=SUM(INDEX(data,N(IF(1,(1,2,3)))))

unde „date” este intervalul numit B5: B10.

Explicaţie

Este surprinzător de dificil să obții INDEX să returneze mai multe valori unei alte funcții. Pentru a ilustra, următoarea formulă poate fi utilizată pentru a returna primele trei elemente din intervalul denumit „date”, atunci când este introdus ca o formulă matrice cu mai multe celule.

(=INDEX(data,(1,2,3)))

Rezultatele pot fi văzute în intervalul D10: F10, care conține corect 10, 15 și 20.

Cu toate acestea, dacă înfășurăm formula în funcția SUM:

=SUM(INDEX(data,(1,2,3)))

Rezultatul final este 10, în timp ce ar trebui să fie 45, chiar dacă este introdus ca formulă matrice. Problema este că INDEX returnează primul element din matrice la funcția SUM. Pentru a forța INDEX să returneze mai multe elemente la SUM, puteți înfășura constanta matricei în funcțiile N și IF astfel:

=SUM(INDEX(data,N(IF(1,(1,2,3)))))

care returnează un rezultat corect de 45. În mod similar, această formulă:

=SUM(INDEX(data,N(IF(1,(1,3,5)))))

returnează corect 60, suma de 10, 20 și 30.

Această tehnică obscură este uneori numită „dereferențiere”, deoarece oprește INDEX-ul de a gestiona rezultatele ca referințe de celulă și, ulterior, de a renunța la toate, cu excepția primului element din matrice. În schimb, INDEX oferă o gamă completă de valori către SUM in. Jeff Weir are o explicație bună aici în stackoverflow.

Notă pentru cititori: Nu sunt sigur de ce funcționează. Dacă puteți oferi o explicație clară, voi actualiza pentru a include.

Articole interesante...