Excel获取包含值的行

时间:2014-11-17 19:39:47

标签: excel

我有一个包含多列的表,第一列包含索引值(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

1 个答案:

答案 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确认。