根据单元格输入动态引用表行

根据单元格输入动态引用表行

我发现有几个问题涉及我想做的事情,但不完全是。

我有一张表,比如说 Table1

部分 tot_bad_1at3 tot_bad_2at6 tot_bad_3at6 tot_bad_4at6
A 10 二十五 22 15
1 11 9 4
C 3 15 12 6
4 21 18 12
6 8 5 2

然后,我在表中添加了计算列,称为“bad”,我希望根据用户在 Sheet2 单元格 A2 中的输入(称为“bad_def”)选择其中一列现有列。这是一个下拉列表,其值为:bad_1at3、bad_2at6、bad_3at6、bad_4at6 在此处输入图片描述

因此,表格列“bad”的“伪公式”将是[@["tot_" & bad_def ]][@[indirect("tot_" & bad_def) ]]。换句话说,我只想根据用户输入返回表格中的相应行。另一个选项是添加一个简单的计算来获取用户输入,并在其前面加上“tot_”以创建已经存在的表格列。

目前,我正在使用=INDEX(Table1, ROW([@Segment])-1, MATCH("tot_" & bad_def, Table1[#Headers],0)),或使用一系列嵌套的 if 语句。因此,我想知道是否有更动态的方法来做到这一点?

谢谢您的建议。

大家好。

答案1

要为此场景创建动态计算列,请使用 XLOOKUP 函数(或 INDEX 和 MATCH 函数)查找查找值在表格标题行中,“表 1[#标题]",并从当前表行返回相应的值,"表格1[@]“:

=XLOOKUP("tot_"&bad_def, Table1[#Headers], Table1[@])

或者:

=INDEX(Table1[@], MATCH("tot_"&bad_def, Table1[#Headers], 0))

注意:使用 INDEX 函数时,由于大批参数仅包含一行,行号参数将接受列号争论。

此外,为避免出现任何循环引用警告,请勿在数据验证列表中包含新创建的计算列的列标题“bad_def“。

相关内容