我正在尝试为 Excel 编写自定义数据验证,但失败了,这样单元格只能包含逗号分隔的值列表,其中每个值由两个大写字母后跟八位数字组成。一个好处是逗号分隔的值应该是唯一的。
理想情况下,这可以在基于 Web 的 Excel 版本中运行,但这可能会推动它。
我可以直接验证模式 AB12345678 的单个值...
=AND(ISNUMBER(VALUE(CONCAT((FIND(MID(A1,1,1),"ABCDEFGHIJKLMNOPQRSTUVWXYZ")),(FIND(MID(A1,2,1),"ABCDEFGHIJKLMNOPQRSTUVWXYZ"))))),ISNUMBER(VALUE(MID(A1,3,8))),LEN(A1)=10)
...但无法弄清楚如何将其应用于逗号分隔列表中的多个值。
如有任何建议,我们将不胜感激,谢谢大家!
使用
BYCOL()
和 TEXTSPLI0T()
(和 AND()
):
=BYCOL(TEXTSPLIT(A7,","),
AND(ISNUMBER(VALUE(CONCAT((FIND(MID(A1,1,1),"ABCDEFGHIJKLMNOPQRSTUVWXYZ")),(FIND(MID(A1,2,1),"ABCDEFGHIJKLMNOPQRSTUVWXYZ"))))),ISNUMBER(VALUE(MID(A1,3,8))),LEN(A1)=10))
这将输出一个数组,如果你在它周围包裹一个
AND()
,它将只输出TRUE
或FALSE
。
注意,我用
TEXTJOIN()
", "
编辑了单元格 A7 中 A1:A5 中的列表。
示例 2 显示
FALSE
输出。
(不同语言的 Excel,
WAAR
= TRUE
,ONWAAR
= FALSE
)
手动完成单元格突出显示