2014-11-17 3 views
-1

У меня есть таблица с несколькими столбцами, первый столбец содержит значения индекса (0,1,2 ... N), подумайте об идентификаторах кластера, а остальные столбцы содержат текстовые строки, вызовите эти метки , Количество столбцов изменяется в каждой строке, но всегда содержит по крайней мере одну ячейку с меткой, особыми кластерами. У меня есть другая таблица, которая содержит тег для каждой метки, т. Е. Два столбца с первым в качестве метки, а второй - как тег. Я хотел бы иметь таблицу с индексами и тегами. В принципе мне нужна формула, которая возвращает ссылку на строку, если метка найдена в этой строке. Первоначально, хотя некоторые комбинации INDEX-MATCH или VLOOKUP работали, но все найденные мной примеры имеют только один столбец в их критериях поиска, который известен заранее. Если кто-то может помочь, это будет очень признательно.Excel получить строку, которая содержит значение

Я попытался заменить ярлыки их тегами, но одна метка может иметь несколько тегов, так что это не сработало. Thnx заранее.

EDIT:

@ Ben1344 имеет почти правильный пример, ниже небольшой пример (я извиняюсь за мое именование)

Table 1 

0 A C D 
1 E G 
2 Z F X 
3 Y 


Table 2 

A foo 
C foo 
D bar 
E pikachu 
F psyduck 
G jigglypuff 
X goldeen 
Y psyduck 
z foo 


Desired Table 

0 foo 
0 foo 
0 bar 
1 pikachu 
2 psyduck 
1 jigglypuff 
2 goldeen 
3 psyduck 
2 foo 
+1

Возможно, небольшой пример с использованием уменьшенного набора данных вместе с ожидаемыми результатами поможет прояснить ваш запрос? –

ответ

0

Похоже, у вас есть 2 таблицы и хотели бы треть ,

Из вашего примера, похоже, что ваш желаемый стол фактически является дополнительным столбцом во второй таблице. Теги в значительной степени отвлекают внимание. Что нужно сделать:

Приведенный стол 1 и метку, получите индекс.

Я вижу два способа приблизиться к этому.ВАРИАНТ 1:

VBA определенные пользователем функции добавить следующую процедуру в модуль в VBA

Public Function FindInColumns(FindMe As Range, LookIn As Range) As Long 
    Dim val 
    val = FindMe.value 
    Dim rng As Range 
    For Each rng In LookIn 
    If rng.value = val Then GoTo ExitLoop 
    Next rng 
ExitLoop: 
    FindInColumns = rng.Row - LookIn.Row + 1 
End Function 

Предположим, таблица 1 находится в A1: D4

Предположим, таблица 2 в точке F1: G9

Put Таблица 3 на I1: J9

В ячейку J1 поместить =G1

В ячейке I1 положить следующую формулу:

=INDEX($A$1:$D$4,FindInColumns(F1,$B$1:$D$4)) 

и перетащить вниз к остальной части клеток

ВАРИАНТ 2:

(от: here)

Использование только превосходят формулы:

Предположим, что таблица 1 находится в A1: D4

Предположим, таблица 2 находится в точке F1: G9

пут Таблица 3 на I1: J9

В ячейке J1 поместить =G1

в ячейке I1 поместить следующую формулу:

=INDEX($A$1:$A$4,MIN(IF($B$1:$D$4=G1,ROW($B$1:$D$4)-ROW($B$1)+1))) 

Это формулу Array, поэтому, когда вы вводите ее, нажмите CTRL + SHIFT + ENTER вместо ENTER для подтверждения.

+0

", но один ярлык может иметь несколько тегов". – pnuts

+0

Хорошо, я подумал: «У меня есть еще одна таблица, содержащая тег для каждой метки, т. Е. Два столбца с первым в качестве метки, а второй как тег» означает, что на метку был только один тег. Существует ли возможность использования нескольких меток для каждого индекса и нескольких меток на ярлык? – Ben1344

+0

Я был явно ошибочным с некоторыми из моих (неверных) интерпретаций и с готовностью соглашался, что это далеко не грубое недоразумение! – pnuts

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