2014-07-09 4 views
0

У меня есть таблица данных с несколькими столбцами, которые я хочу найти, - заканчивая возвратом значения (-ей) верхней строки в найденных столбцах. Как это сделать?Excel - значение поиска в нескольких столбцах

Моя идея была бы совместить индекс с матчем, но я скорее потерял конкретные идеи ...

January February March April May June 
     1  2  3  4 5 6 
     7  8  9 10 11 12 
     2  7  1  8 4 5 
     9  10 11 12 6 3 

Э.Г. Искать: ID 3 - должен вернуться: март, июнь

С уважением,

Nyborg

+0

Я бы предположил, что у вас есть это в VBA, я не могу придумать способ сделать это с помощью только формул excel. Возможно, вам нужно будет изучить учебное пособие, в котором вы узнаете об основных принципах, например, о том, как пройти через диапазон ячеек, если вы еще не знакомы. – ChrisProsser

+0

12 столбцов всего или более? «Март, июнь» в одной ячейке? – pnuts

ответ

0

Вы должны добавить ВПР для каждого столбца и после сборки результата
Следуя схеме:

enter image description here

A7 -> =IF(IFERROR(VLOOKUP($A$9;A1:A5;1;);"")="";"";A1)   and autocomplete 
D9 -> =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(CONCATENATE(A7;",";B7;",";C7;",";D7;",";E7;",";F7);",,";",");",,";",");",,";",") 
D10 -> =IF(RIGHT(D9;1)=",";LEFT(D9;LEN(D9)-1);D9) 

Формула для D9 & D1 0 это только хорошее отображение результатов.

UPDATE Версия: Учитывая вы согласны иметь строку 7 ... Вы можете simplyfy по формуле Результат:

=INDEX(List;SMALL(IF(List<>"";COLUMN(List)-MIN(COLUMN(List))+1);1))&IFERROR(", " & INDEX(List;SMALL(IF(List<>"";COLUMN(List)-MIN(COLUMN(List))+1);2));"")&IFERROR(", " & INDEX(List;SMALL(IF(List<>"";COLUMN(List)-MIN(COLUMN(List))+1);3));"") 

Список это имя Диапазон Роу 7. Формула должны применяться с помощью Ctrl + Shift + Enter.
Эта формула собирает первое значение 3.
Если вы хотите больше, то добавьте для каждого п-го значения у вас есть:

&IFERROR(", " & INDEX(List;SMALL(IF(List<>"";COLUMN(List)-MIN(COLUMN(List))+1);3));"") 

изменения последнего NUMER (в данном случае 3) и положить 4, 5, 6 ...
Obviusly, если результат может быть много, имеют мало смысла ... Рассмотрите возможность использования VBA!

+0

Хороший код. Однако в листе данных у меня есть 50+ столбцов, и я хотел избежать VBA, просто используя «простые расширенные» формулы. Поэтому я рассматривал метод поиска/поиска по нескольким (2+) столбцам и возвращал эквивалентные заголовки. – user1732611

Смежные вопросы