2017-01-07 5 views
1

У меня (как я думал) простая таблица поиска, содержащая некоторые курсы обмена. Там я ищу значения на основе индексов строк и столбцов. Как я могу это сделать в ARRAYFORMULA? Как это:Что такое эквивалент INDEX в ARRAYFORMULA?

=ARRAYFORMULA(INDEX(x!C2:C, F1:F)) 

Х представляет собой лист держит значения, Я заинтересован в колонке С, индекс строки проходит в моей колонке F. единого поиска значения, как INDEX (х C2: C, F7) работает как ожидалось.

Но ARRAYFORMULA, к сожалению, это не работает, поскольку INDEX не поддерживается в ARRAYFORMULA.

Любая идея, что использовать вместо этого? Благодаря!

ответ

1

vlookup может быть адаптирован для имитации функции index, сделав первый столбец таблицы поиска номером строки (с подходящим смещением). Пример:

=arrayformula(vlookup(F1:F, {row(x!C2:C) - row(x!C2) + 1, x!C2:C}, 2)) 

делает то, что вы пытались сделать с "= ARRAYFORMULA (INDEX (х C2: C, F1: F))".

Таблица поиска {row(x!C2:C) - row(x!C2) + 1, x!C2:C} имеет первый столбец 1,2,3, ... и второй столбец - диапазон, который вы хотите индексировать. Таким образом, для каждого значения из F1: F vlookup обращается к записи x! C2: C, которую index будет.

+0

Да, я вижу, что vlookup рекомендуется в этом случае, но в моем понимании вам нужно знать ценность, которую вы ищете, нет? Ну, я не знаю, какую ценность я ищу, вот почему я смотрю его !!! – Cata

+0

Хорошая точка; отредактировал ответ. – FTP

+0

Это работает, спасибо! Хороший трюк. Чувствует себя немного расточительным, хотя для поиска по всему первому столбцу для каждого поиска, когда простая адресная адресация сразу же получит ответ. Должен ли я беспокоиться об этом? Есть ли еще более быстрый способ? – Cata