Excel-第二个选单不出现第一个选单已被选的内容(OFFSET,ROW)

爱必应

网友问到:在 Excel 的工作表中(如下图),如果有二个下拉式选单,希望第二选单不要重现第一个选单已选取的项目,该如何处理?

例如,在选单A中已选取「五月」,则选单B中没有列出「五月」供选取。

Excel-第二个选单不出现第一个选单已被选的内容(OFFSET,ROW)

【公式设计与解析】

要制作选单效果可以透过「资料验证」功能,例如选单A设定:

单元格内允许:清单

来源:=$D$2:$D$13

image

如果要做到选单B不能包含选单A中已被选取的项目,则必须建立另一个选单的内容。

选取单元格D1:D13,按 Ctrl+Shift+F3 键,勾选「顶端列」,定义名称:选单A。

单元格E2:

{=OFFSET($D$1,SMALL(IF(选单A<>$A$2,ROW(选单A),””),ROW(1:1))-1,0)}

这是阵列公式,输入完成要按 Ctrl+Shift+Enter 键,Excel 会自动输入「{}」。

(1) IF(选单A<>$A$2,ROW(选单A),””)

在阵列公式中判断单元格A2内容是否和选单A阵列相同,若是则传回单元格列号,否则传回空字串。

(2) SMALL(第(1)式,ROW(1:1))

利用 SMALL 函数由小至大依序取出列号。

(3) OFFSET($D$1,第(2)式,ROW(1:1))-1,0)

将第(2)式传回的列号代入 OFFSET 函数取得对应的单元格内容。

复制单元格E2,贴至单元格E2:E12。

在单元格B2中以单元格E2:E12,建立下拉式清单。

 

 

 

本文链接:,转发请注明来源!

发表评论