我正在尝试使用 Offset() 函数返回相邻单元格的值。从“订单”选项卡开始,我想在“静态”选项卡上输入对“股票代码”的单元格引用(“源”),然后引用此“股票代码”的“名称”,即其旁边的单元格。
困难在于“订单”选项卡上的这个“源”单元格是对另一个选项卡/单元格的单元格引用。我试图通过将“订单”选项卡上的其他单元格值作为对此初始“源”单元格引用的偏移引用来实现一定程度的“间接”。因此,例如,如果我决定将初始单元格引用从“静态!B5”(即“IBM”)更改为“静态!B6”(即“MSFT”),则“订单”选项卡旁边的单元格将全部自动更新,而无需我更改它们,并将“名称”的显示值从“International Business Machines”更改为“Microsoft”
请参阅以下屏幕截图来帮助解释我正在尝试做的事情。
2. 订单标签显示单元格内容 B5,这是对“静态”选项卡的单元格引用
C5 中的公式不起作用。我希望它显示“International Business Machines”。有人能帮忙吗?
更新:我正在使用 Excel 2019 版本
答案1
您可以使用 FORMULATEXT 检索和解析 Ticker 列中的公式(感谢 @tnavidi)。获取公式,找到感叹号,对右侧的所有内容使用 INDIRECT 以获取引用,然后应用 OFFSET 查找相邻单元格。
=OFFSET(INDIRECT("Static!"&MID(FORMULATEXT(B5),FIND("!",FORMULATEXT(B5))+1,99)),0,1)
编辑
正如 MGonet 所说,这可以简化,因为原始引用和新引用都指向同一张表。因此,除了第一个之外,无需进行解析=
:
=OFFSET(INDIRECT(MID(FORMULATEXT(B5),2,100)),0,1)
答案2
您应该对静态选项卡进行操作XLOOKUP
,因为您想根据不同工作表上的表格查找名称。
=LET(static,Static!$C$5:$C$14,XLOOKUP(B5,static,OFFSET(static,0,1),"<not found>",0,1))
您需要相应地调整静态中的行数。