我有一个包含多列的表,第一列包含索引值(0,1,2 ... N),想想群集ID,其余列包含文本字符串,调用这些标签。列数每行不同,但始终包含至少一个带标签的单元格,单个簇。我有另一个表,其中包含每个标签的标签,即两列,第一列作为标签,第二列作为标签。我想有一个索引值和标签的表。基本上我需要一个公式,如果在该行中找到标签,则返回行引用。我最初虽然有一些INDEX-MATCH组合或VLOOKUP可以工作,但我发现的所有例子在他们的搜索标准中只有一列,这是事先已知的。如果有人能提供帮助,我们将不胜感激。
我尝试用标签替换标签,但是一个标签可以有多个标签,因此不起作用。 Thnx提前。
编辑:
@ 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
答案 0 :(得分:0)
听起来你有两张桌子,想要第三张。
从您的示例中,您所需的表看起来实际上是第二个表中的附加列。标签在很大程度上是一种分心。需要做的是:
根据表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
将表3放在I1:J9
在单元格J1中放置=G1
在单元格I1中输入以下公式:
=INDEX($A$1:$D$4,FindInColumns(F1,$B$1:$D$4))
然后向下拖动到其余的单元格
选项2:
(来自:here)
仅使用excel公式:
假设表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)))
这是一个数组公式,所以当你输入它时按CTRL + SHIFT + ENTER而不是ENTER确认。