Excel 是否对逗号分隔的条目进行数据验证?
我有一张表格,上面列出了如下工作费用:Excel 是否对逗号分隔的条目进行数据验证?,excel,Excel,我有一张表格,上面列出了如下工作费用: COL A COL B CB100 $100 CB101 $200 CB100, CB101 $50 D列中的几列是每个作业的运行列表#: 我试图使用数据验证来确保输入到A列的任何作业已经存在于D列中。这似乎不能通过验证标准的列表格式来完成。有没有办法通过自定义公式进行此操作?使用此自定义公式 =SUMPRODUCT(--ISNUMBER(MATCH(TRIM(MID(SUBSTI
COL A COL B
CB100 $100
CB101 $200
CB100, CB101 $50
D列中的几列是每个作业的运行列表#:
我试图使用数据验证来确保输入到A列的任何作业已经存在于D列中。这似乎不能通过验证标准的列表格式来完成。有没有办法通过自定义公式进行此操作?使用此自定义公式
=SUMPRODUCT(--ISNUMBER(MATCH(TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",99)),(ROW($1:$10)-1)*99+1,99)),D:D,0)))>=LEN(A1)-LEN(SUBSTITUTE(A1,",",""))+1
注意,数据验证应用于整个列A。正如您所看到的,允许输入前两列,但最后一列不允许,因为它不在列表中
按原样,它只测试逗号分隔字段中的前10个数字。您在一个单元格中输入的作业不止一个?您希望如何通过数据验证做到这一点?如果不是通过列表格式,您希望如何得知D列中是否存在此项?到目前为止,你能详细说明一下,并展示一下你的自定义配方吗?这很有效,但有一点需要注意。似乎如果用户输入“CB101”(以空格开头)作为作业,它将注册为有效文本。但是,由于空间原因,VLOOKUP或SUMIF将跳过此条目。有什么方法可以调整作业开始时的空格也变得无效吗?没有,因为如果用户在
、
和下一个代码之间放置空格会怎么样?而您的SUMIF/VLOOKUP由于倍数的原因将需要使用通配符,因此会被找到。
=SUMPRODUCT(--ISNUMBER(MATCH(TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",99)),(ROW($1:$10)-1)*99+1,99)),D:D,0)))>=LEN(A1)-LEN(SUBSTITUTE(A1,",",""))+1