有条件地显示行中具有匹配值的单元格的值



我正试图找到一个Excel(或LibreOffice或Gnumeric)公式,该公式将使单元格使用某行显示B列中的值,该行由基于公式的单元格旁边的单元格中的值确定。例如,如果公式旁边的单元格为"name03",则该公式应替换为"0.83"。

如果不是使用列A,而是使用列名(例如标签为"Names"的列)发现正确的列是A,那就更好了。

我不是在寻找VBA或宏,只是标准的电子表格公式。

Column A    B       C       D   
Names,  Scores, Date,   Comments
name01, 0.95,   20141105,   "NA"
name02, 0.92,   20141105,   "NA"
name03, 0.83,   20141105,   "NA"
name04, 0.81,   20141105,   "NA"
name05, 0.70,   20141105,   "NA"
name06, 0.70,   20141105,   "NA"

其他地方(可能在另一张纸上):

name03, =WHAT_FORMULA??

假设您的数据在sheet2中,并且您的公式在sheet2的单元格B2中,则使用此

=vlookup(A2,sheet1!$A$2:$D$10,2,0)

好吧,怎么样,我用设置了一个搜索条件区域

             I               J
  1     SearchInHeader     Names
  2     RowLabel           name03
  3     ReturnFromColumn   Scores
  4     ReturnedValue      0.83

"J4"中的公式为:

  =INDEX(INDIRECT(J3),MATCH(J2,INDIRECT(J1),0))

诀窍是将每列设置为一个命名范围。因此,您将命名为"名称"、"分数"、"日期"one_answers"注释"的范围。我把所有的专栏都包括在内,只是为了完整。所以命名范围"Names"是=Sheet1$A$2:$A$7等。注意:命名范围以行"2"而非"1"开头。

因此,该公式使用INDIRECT(J1)来选择相关的命名范围,然后在J2中找到该命名范围中的值(MATCH),然后将该行号传递给INDEX函数,以提取由INDIRECT指定的列中与该行对应的值(J3)。

因此,正如您所要求的,它会动态地确定要从中提取的正确列,在该列中找到行标签,然后(您没有要求这一部分)根据搜索条件中的指定,动态地确定哪一列被标记为"ReturnFromColumn"并具有应返回的值。

相关内容

最新更新