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

Excel 有条件地显示具有匹配值的单元格的行中的值,excel,openoffice-calc,libreoffice-calc,gnumeric,Excel,Openoffice Calc,Libreoffice Calc,Gnumeric,我试图找到一个Excel(或LibreOffice或Gnumeric)公式,使单元格使用某行显示B列中的值,该行由基于公式的单元格旁边的单元格中的值确定。例如,如果公式旁边的单元格为“name03”,则应将公式替换为“0.83” 如果不使用列A,而是使用列名(例如带有标签“Names”的列),发现正确的列是A,那就更好了 我不寻找VBA或宏,只是标准的电子表格方程 Column A B C D Names, Scores, Date, Comments

我试图找到一个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"
其他地方(可能在不同的表格中):


假设数据在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”中的公式为:

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

因此,公式使用间接(J1)选择相关的命名范围,然后在该命名范围(匹配)的J2中查找值,然后将该行号传递给索引函数,以提取由间接(J3)指定的列中与该行对应的值

因此,当您要求时,它会动态地确定要从中提取的正确列,在该列中查找行标签,然后(您没有要求此部分)根据搜索条件中的指定,动态地确定将哪个列标记为“ReturnFromColumn”并具有应返回的值

             I               J
  1     SearchInHeader     Names
  2     RowLabel           name03
  3     ReturnFromColumn   Scores
  4     ReturnedValue      0.83
  =INDEX(INDIRECT(J3),MATCH(J2,INDIRECT(J1),0))