Екцел формула: Врати низ са функцијом ИНДЕКС -

Преглед садржаја

Генеричка формула

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

Резиме

Да бисте ИНДЕКС вратили низ ставки другој функцији, можете користити опскурни трик заснован на функцијама ИФ и Н. У приказаном примеру, формула у Е5 је:

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

где је „податак“ именовани опсег Б5: Б10.

Објашњење

Изненађујуће је зезнуто постићи да ИНДЕКС врати више од једне вредности другој функцији. Илустрације ради, следећа формула се може користити за враћање прве три ставке у именованом опсегу „подаци“, када се уносе као формула са више ћелија.

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

Резултати се могу видети у опсегу Д10: Ф10, који тачно садржи 10, 15 и 20.

Међутим, ако формулу умотамо у функцију СУМ:

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

Коначни резултат је 10, док би требало да буде 45, чак и ако је унесен као формула низа. Проблем је у томе што ИНДЕКС само прву ставку у низу враћа у функцију СУМ. Да присилите ИНДЕКС да врати више ставки у СУМ, можете умотати константу низа у функције Н и ИФ на следећи начин:

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

који даје тачан резултат од 45. Слично томе, и ова формула:

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

тачно враћа 60, збир 10, 20 и 30.

Ова опскурна техника се понекад назива „преусмеравање референци“, јер спречава ИНДЕКС-а да обрађује резултате као референце ћелија и потом испушта све ставке из поља осим прве. Уместо тога, ИНДЕКС испоручује читав низ вредности СУМ-у. Јефф Веир има добро објашњење овде о стацковерфлов.

Напомена читаоцима: Нисам сигуран зашто тачно ово функционише. Ако можете да дате јасно објашњење, ажурираћу да бих га укључио.

Занимљиви Чланци...