Соответствующий текст в Excel - PullRequest
0 голосов
/ 26 июня 2019

Я создаю систему меток в Excel, в которой он берет продукт (например, апельсины) и сравнивает его с колонками продукта (например, один список фруктов и других ягод) и помечает его фруктами или ягодами в зависимости от того, к какому столбцу он относится. в.

VLookup и HLookup проблематичны, поскольку справочную таблицу придется переставить, что проблематично. Он не будет работать без перестановки, так как «Тип», который мне нужен, находится в первой строке HLookup, а также тот факт, что есть 2 столбца данных для просмотра. 2 столбца данных также портят функцию MATCH, поскольку она может просматривать только 1 столбец. Я действительно не хочу сводить много утверждений IF, что является причиной моего вопроса здесь.

Есть некоторый код, который работает аналогично тому, что мне нужно, но функция MMULT не будет работать для моей справочной таблицы из-за наличия большого количества строк данных.

Код создает матричный тип вещи и находит, в какой строке он находится вместо столбца.

=INDEX(TYPE,MATCH(1,MMULT(--(SUB_TYPE=C2),TRANSPOSE(COLUMN(SUB_TYPE)^0)),0))

1 Ответ

1 голос
/ 26 июня 2019

Может быть попробовать что-то вроде этого:

enter image description here

enter image description here

Комбо

INDEX и MATCH все еще может помочь вам. Вот так:

=INDEX(A1:B1,,SUMPRODUCT((A1:B4=D2)*COLUMN(A1:B4)))

Вы даже можете сделать это с CHOOSE:

=CHOOSE(SUMPRODUCT((A1:B4=D2)*COLUMN(A1:B4)),"Fruits","Berries")

Возможно, лучше было бы:

=IF(COUNTIF(A:A,D2)>0,"Fruits","Berries")

будет делать, если вы уверены, что есть совпадение в любом столбце. Если вы не уверены и хотите знать, есть ли на самом деле совпадение, вы можете сложить другое IF:

=IF(COUNTIF(A:A,D2)>0,"Fruits",IF(COUNTIF(B:B,D2)>0,"Berries","No match found"))

Предлагаемое редактирование будет еще быстрее:

=IF(ISNUMBER(MATCH(D2,A:A,0)),"Fruits",IF(ISNUMBER(MATCH(D2,B:B,0)),"Berries","No match found"))
...