Върнете масив, използвайки в Excel, използвайки функцията INDEX

Anonim

По някаква причина, ако искате да извършите някаква операция с диапазон с конкретни индекси, ще помислите да използвате функцията INDEX за получаване на масив от стойности за конкретни индекси. Като този.

Нека го разберем с пример.

Тук имам колона за тарифи. Искам да сумирам стойности в позиция 1,3 и 5. Пиша тази формула в C2.

= SUM (ИНДЕКС (A2: A11, {1,3,5}))

Изненадващо, функцията INDEX не връща масив от стойности, когато предоставяме масив като индекси. Получаваме само първата стойност. И функцията SUM връща сумата само на една стойност.

И така, как да получим функцията INDEX да върне този масив. Е, намерих това решение в интернет и наистина не разбирам как работи, но работи.

Общата формула за получаване на масив от индекси

= SUM (INDEX (диапазон, N (IF (1, {числа})))

Диапазон: Това е диапазонът, в който искате да търсите дадени индексни номера
Номер: това са индексните номера.
Сега нека приложим горната формула към нашия пример.

Напишете тази формула в C2.

= SUM (ИНДЕКС (A2: A11, N (IF (1, {1,3,5})))

И това връща верния отговор като 90.

Как работи.

Е, както казах, че не знам защо работи и връща масива от числа, но ето какво се случва.

IF (1, {1,3,5}): Тази част връща масива {1,3, 5} според очакванията

N (IF (1, {1,3,5})) това се превежда на N ({1,3,5}), което отново ни дава {1,3,5}

ЗАБЕЛЕЖКА: Функцията N връща числовия еквивалент на всяка стойност. Ако дадена стойност не може да се преобразува с числа, тя връща 0 (като текст). И за грешки връща грешка.

INDEX ((A2: A11, N (IF (1, {1,3,5}))): тази част се превежда като INDEX ((A2: A11, {1,3,5}) и по някакъв начин това връща масива { 10,30,50}. Както видяхте по -рано, когато пишете INDEX ((A2: A11, {1,3,5}) директно във формулата, тя връща само 10. Но когато използваме функцията N и IF, тя връща цялата Ако го разбирате, уведомете ме в секцията за коментари по -долу.

Как да използвате препратки към клетки за стойности на индекса, за да получите масив
В горния пример ние твърдо кодирахме индексите във функция. Но какво, ако искам да го имам от диапазон, който може да се промени. Ще заменим {1,3,5} с range? Да пробваме.

Тук имаме тази формула в клетка D2:

= SUM (ИНДЕКС (A2: A11, N (IF (1, A2: A5)))

Това връща 10. Първата стойност на дадения индекс. Дори да го въведем като формула на масив, използвайки CTRL+SHIFT+ENTER, тя дава същия резултат.

За да работи, добавете + или - (двоен унар) оператор преди диапазона и го въведете като формула на масив.

{= SUM (INDEX (A2: A11, N (IF (1,+A2: A5)))}}

Това работи. Не ме питайте как? Просто работи. Ако можете да ми кажете как ще включа вашето име и обяснение тук.
Така че научихме как да получим масив от функцията INDEX. Тук в Excel се случват някои луди неща. Ако можете да обясните как работи тук в секцията за коментари по -долу, ще го включа в моето обяснение с вашето име.
Свали файл:

Върнете масив, използвайки в Excel, използвайки функцията INDEX

Свързани статии:

Масиви във формула на Excel

Използвайте INDEX и MATCH за търсене на стойност

Как да използвате функцията LOOKUP в Excel

Търсена стойност с множество критерии

Популярни статии:

Функцията VLOOKUP в Excel

COUNTIF в Excel 2016

Как да използвате функцията SUMIF в Excel