По какой-либо причине, если вы хотите выполнить некоторую операцию с диапазоном с определенными индексами, вы можете подумать об использовании функции ИНДЕКС для получения массива значений по определенным индексам. Нравится.

Index with INDEX

Разберемся на примере.

Здесь у меня есть столбец Оценить. Я хочу суммировать значения в позиции 1,3 и 5.

Я пишу эту формулу в C2.

=SUM(INDEX(A2:A11,{1,3,5}))

Удивительно, но функция ИНДЕКС не возвращает массив значений, когда мы предоставляем массив в качестве индексов. Мы получаем только первое значение. А функция СУММ возвращает сумму только одного значения.

0081

Итак, как мы можем получить функцию INDEX, возвращающую этот массив. Я нашел это решение в Интернете, и я действительно не понимаю, как оно работает, но оно работает.

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

=SUM(INDEX(range,N(IF(1,{numbers})))

Диапазон: это диапазон, в котором вы хотите искать по заданным номерам индексов. Номер: это номера индексов.

Теперь применим приведенную выше формулу к нашему примеру.

Запишите эту формулу в C2.

=SUM(INDEX(A2:A11,N(IF(1,{1,3,5})))

И это вернет правильный ответ как 90.

0082

Как это работает.

Ну, как я уже сказал, я не знаю, почему он работает и возвращает массив чисел, но вот что происходит.

link: / tips-if-condition-in-excel [IF] (1, \ {1,3,5}):

Эта часть возвращает массив \ {1,3, 5}, как и ожидалось N (link: / tips-if-condition-in-excel [IF] (1, \ {1,3,5}))

это переводится в N (\ {1,3,5}), что снова дает нам \ {1,3,5} ПРИМЕЧАНИЕ: функция N возвращает числовой эквивалент любого значения. Если значение не является числовым, оно возвращает 0 (как текст). А при ошибках возвращает error.

link: / lookup-formulas-excel-index-function [ИНДЕКС] A2: A11, N (link: / tips-if-condition-in-excel [IF] (1, \ {1,3 , 5}):

эта часть переводится как link: / lookup-formulas-excel-index-function [INDEX] ((A2: A11, \ {1,3,5})

и каким-то образом это возвращает массив \ {10,30,50}. Как вы видели ранее, когда пишете link: / lookup-formulas-excel-index-function [INDEX] ((A2: A11, \ { 1,3,5})

непосредственно в формуле он возвращает только 10. Но когда мы используем функцию N и IF, он возвращает весь массив. Если вы понимаете это, дайте мне знать в разделе комментариев ниже.

Как использовать ссылки на ячейки для значений индекса, чтобы получить массив

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

0083

Здесь у нас есть эта формула в ячейке D2:

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

Это возвращает 10. Самое первое значение данного индекса. Даже если мы e введите его как формулу массива с помощью CTRL + SHIFT + ENTER, он даст тот же результат.

Чтобы заставить его работать, добавьте оператор + или — (двойной унарный) перед диапазоном и введите его как формулу массива.

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

Index with INDEX

Это работает. Не спрашивай, как? Это просто работает. Если вы можете сказать мне, как я буду указывать здесь ваше имя и объяснение.

Итак, мы узнали, как получить массив из функции ИНДЕКС. В Excel творится что-то безумное. Если вы можете объяснить, как это работает здесь, в разделе комментариев ниже, я включу это в свое объяснение с вашим именем.

Скачать файл: