我正在尝试根据路由器1的型号(B列)和路由器2的型号(C列)创建一个包含可用路由器接口(E列)的数据验证下拉列表。 / p>
我使用以下方法为router1编制了一个接口列表(D列):
=INDIRECT("TBL_Device_Interfaces[" & INDIRECT("B" & ROW()) & "]")
这是我遇到问题的地方。对于Col E,我需要对表格列表执行相同的间接,但是,如果当前行的COL C ="未使用"然后使用COL B的值,否则使用COL C的值。
我首先尝试了这个,但它不起作用:
=INDIRECT("TBL_Device_Interfaces[" & INDIRECT(IF(INDIRECT("C" & ROW()) = "not used", "B", "C") * ROW()) & "]")
然后我尝试了,但它不起作用:
=If(INDIRECT("C" & ROW()) = "not used", INDIRECT("TBL_Device_Interfaces[" & INDIRECT("B" & ROW()) & "]"), INDIRECT("TBL_Device_Interfaces[" & INDIRECT("C" & ROW()) & "]"))
但这就是杀了我的原因。因为这可行...但我需要静态列,但是基于当前行的动态行:
=If($C$6 = "not used", INDIRECT("TBL_Device_Interfaces[" & INDIRECT("B" & ROW()) & "]"), INDIRECT("TBL_Device_Interfaces[" & INDIRECT("C" & ROW()) & "]"))
注意:我手动关闭离线电脑。对不起,如果有任何类型操作系统(如拼写间接错误)。那些不在主码中。如果所有人都在分段工作,但我无法让它在数据验证中工作。
我还有另外一种创建下拉列表的方法。我只需要能够使用index / match和indirects引用值表。
答案 0 :(得分:0)
您正在混合使用不同的单元格引用样式。如果你考虑你的公式将如何执行它的说法"去看看TBL_Device_Interfaces [B3]"。您可以看到如何构建structured table references here.您需要坚持使用结构化表引用或切换回标准引用。
尝试将您的公式设为:
=IF($C$6 = "not used", INDIRECT( INDIRECT("B" & ROW()) ), INDIRECT(INDIRECT("C" & ROW()) ))
或者如果你想坚持使用结构化参考,请尝试:
=IF(TBL_Device_Interfaces[@Column3] = "not used", TBL_Device_Interfaces[@Column2], TBL_Device_Interfaces[@Column1])
我的列可能不对,但它应该有效。