我有一个包含 3 列的表格 - “订单”、“状态”和“状态详细信息”,如下图 1 所示。
我想根据下图 2 中定义的列表(相应的“L2 代码”和“L3 代码”列)在“状态”和“状态详细信息”列中设置 2 个依赖数据验证列表。
我的期望是,当我从“状态”列中的下拉列表中选择一个值时,“状态详细信息”列中的下拉列表将仅显示适用于列状态中的选择的值。 例如,如果我在“状态”列中选择“HIT”,则“状态详细信息”中的唯一选项将是“HIT”。如果我在“状态”栏中选择“WH”,“状态详细信息”中的唯一选项将是“WHNS”。
我在
"Status"
列中使用简单的数据验证列表,其中来源是:
=$C$5:$C$10
在
"Status Details"
中数据验证列表来源是
=OFFSET($C$5,MATCH(K5,$C$5:$C$10,0)-1,1)
问题是,当我在
"Status"
中选择[空白](如在空单元格中)时,虽然我希望在"Status Details"
中得到[空白],但我却得到#N/A。
我尝试将以下公式放入数据验证列表中来解决该问题:
=IF(K5 <> "", OFFSET($C$5,MATCH(K5,$C$5:$C$10,0)-1,1), "")
但我收到以下警报:
列表源必须是分隔列表,或者对单行或单列的引用。
MATCH
函数是否无法返回空单元格的位置,或者其他什么?
底线,我希望“L3 代码”列表依赖于“L2 代码”,并且能够在下拉列表中给出一个空单元格作为有效选择。
MATCH函数会返回一个相对位置,它经常与INDEX一起使用来返回所需的实际值。但您也可以使用 XLOOKUP。
我不确定我是否理解你的问题,但这就是我获取第二个下拉列表的方法。
首先,我用命名范围命名两个列表,将第一个下拉列表放入 K5,然后在第二个下拉范围中应用此公式:
=XLOOKUP(K5 , List2 , List3 , "" , 1)
但是,如果我理解正确的话,第二个值总是与第一个值相对应?在这种情况下,您只需将公式拖放到单元格 L5 中,因为它会自动更新该单元格。
希望这可以帮助您开始,如果有不清楚的地方请告诉我。