(VLOOKUP($C10,Trans_CIQ!$A$8:$AZ$95,MATCH(D$9,Trans_CIQ!$A$8:$AZ$8,INDEX(Trans_CIQ!$A$886:$AZ$886,1,0)),0)*100000)

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

Vlookup(значение поиска (название компании), массив таблиц (где искать), col_index_num (столбец для поиска), [поиск диапазона] (всегда 0)) дает значение, соответствующее условиям

Соответствие (lookup_value (заголовок диаграммы CapIQ), lookup_array (где искать), [тип соответствия] (точное)) дает номер элемента в списке

Index(массив (таблица), row_num, [column num]) возвращает значение в ячейке

1 ответ1

1

INDEX(Trans_CIQ!$A$886:$AZ$886,1,0)

Поскольку третий критерий равен 0 он фактически возвращает массив всей первой строки указанного диапазона. 1 говорит формуле, что первая строка нужна.

Но так как Range находится всего в одной строке, INDEX просто добавляет шум и может быть удален.

Trans_CIQ!$A$886:$AZ$886

вернет тот же массив.

MATCH(D$9,Trans_CIQ!$A$8:$AZ$8,INDEX(Trans_CIQ!$A$886:$AZ$886,1,0))

Находит значение в D9 в массиве, возвращаемом индексом, и возвращает относительный номер столбца. Этот номер столбца, возвращаемый в VLOOKUP, указывает, какой столбец следует вернуть в качестве ответа.

Но, как указано выше, ИНДЕКС не нужен. Также, находясь в третьем критерии, он должен возвращать ошибку и не работать, замените ее на -1 , 0 или 1 .

MATCH(D$9,Trans_CIQ!$A$8:$AZ$8,0)

Итак, допустим, что MATCH возвращает столбец 5, так как значение в D9 попадает в список, содержащийся в Trans_CIQ!$A$8:$AZ$8 Возвращается 5 к третьему критерию VLOOKUP.

VLOOKUP($C10,Trans_CIQ!$A$8:$AZ$95,5,0)

Затем он находит C10 в Trans_CIQ!$A$8:$A$95 И возвращает значение из 5-го столбца или, в данном случае, столбца E, той строки, в которой найдено значение.

После этого *100000 умножает доход на 100000

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .