我正在处理以下几行:
=VLOOKUP(B16,PI_Rank_费洛克斯,2,假)
我正在尝试获取公式中的文本(示例中显示了单词 Ferox)并使其根据另一个单元格中发生的情况(单元格 H3 中的文本)动态地变化。
因此,如果 H3 显示单词 Griffin,我希望单元格更改为以下内容:
=VLOOKUP(B16,PI_Rank_格里芬,2,假)
如果 H3 显示“Slasher II”字样,我希望它看起来像这样:
=VLOOKUP(B16,PI_Rank_杀戮狂二世,2,假)
有什么建议吗?
答案1
该函数的用途INDIRECT
。
尝试:
=VLOOKUP(B16,INDIRECT("PI_Rank_" & H3),2,FALSE)
请注意,这INDIRECT
是一个易失性函数,如果您有大量公式使用此函数,它可能会减慢您的工作表计算速度
答案2
答案3
另一种可能性是:= VLOOKUP(B16, CHOOSE(H4, PI_Rank_Ferox, PI_Rank_Griffin, PI_Rank_Slasher_II), 2, FALSE)
其中单元格 H4 包含单元格 H3 中选择内容的索引号 1-3。
如果您想让它变得非常漂亮且易于扩展,请制作一个包含 1 列的表格,其中包含您希望用户能够选择的所有值。创建一个命名引用(公式->名称管理器->新建),并在引用您中输入:=INDEX(<您的表名[列名]>, 0)。现在,将单元格 H3 设为数据验证单元格,其值基于列表。在源字段中,键入您刚刚创建的命名引用的名称。最后,在单元格 H4 中,键入:IFERROR(Match(H3, <您的表名[列名]>, 0), 1)