我有一个在数据验证列表中使用的资产列表。我可以使用标准mehtod来检查它是否与以下辅助列一起使用:
=IF(COUNTIF(Schedule!$B$2:$B$7,A1)>=1,"",ROW())
,然后使用创建未使用名称列表
=IF(ROW(A1)-ROW(A$1)+1>COUNT(B$1:B$6),"",INDEX(A:A,SMALL(B$1:B$6,1+ROW(A1)-ROW(A$1))))
然后我使用以下内容创建一个名称范围:
=OFFSET(Assets!$C$1,0,0,COUNT(Assets!$B$1:$B$6),1)
都很标准。这对于应用数据验证的单个列来说效果很好。我的问题是,我希望能够跨3列应用数据验证。本质上,如果在3列中的任意一列中选择了该值,我希望将其从验证列表中删除。
我曾尝试用COUNTIFS
和多个条件/范围替换第1行中的COUNTIF
函数,但我无法使其工作。
如有任何协助,我们将不胜感激。
干杯
尽管你的公式可能都是普通的,但你确实通过提供不匹配的引用来模糊它们在项目中的应用。最后,我只是创建了一个竞争系统,现在我必须要求您适应您的项目。
在我的项目中,我将所有数据放在同一张表上,这张表被称为"时间表"。正因为如此,Excel在公式中省略了我没有明确插入的工作表名称。当您调整我的解决方案时,请在引用其他选项卡上的范围时添加工作表名称。
资产列表在B4:B9的范围内。具有数据验证的单元格在C4:E9范围内,Helper范围为G4:G9,从中获取验证列表的范围为K4:K9。对于此设置,这是所需的"验证列表"公式。
=OFFSET($K$4,0,0,COUNT($G$4:$G$9),1)
下面是要向下复制到K9的单元格K4的公式。
=IF(ROW()-ROW(A$4)+1>COUNT(G$4:G$9),"",INDEX($B:$B,SMALL(G$4:G$9,ROW()-ROW(A$4)+1)))
现在,这里是一个有实际变化的公式。它现在可以在3列中的任何一列中找到资产名称的使用,并进行数据验证(C:E(。
=IF(COUNTIF(Schedule!$C$4:$E$9,$B4),"",ROW())
解决方案的简单性与我找到它的困难不成比例。正如我所说,我对你的引用感到困惑。也许出于同样的原因,你没有找到这个简单的解决方案,现在你自己也面临着一场艰苦的战斗。如果是这样,就放弃现有的解决方案,实现我提供的解决方案。要使两者匹配可能太难了。如果你需要任何帮助,请告诉我。