我有一个逗号分隔值在A2和相同的数字在不同的单元格B1,C1,D1....我想从逗号分隔值匹配他们,并找出计数在B2,C2,D2。请参阅所附的图像,你会得到的上下文。
我们可以通过excel中的公式或宏来实现这一点吗?试用配方:
=LEN(TRIM($A$2))-LEN(SUBSTITUTE(TRIM($A$2),C1,","""))
此外,我有两个数据集,我将使用这个公式来找出从逗号分隔的值的数量计数,并根据计数,我希望重复的来在不同的单元格请参阅图像更好地理解。
t5fffqht1#
可能不是最好的解决方案,但可以完成工作。请注意,它是区分大小写的,请确保在完成此公式后按Ctrl+Shift+Enter。
{=SUM(--(EXACT("!"&TRIM(MID(SUBSTITUTE($A2,",",REPT(" ",100)),(ROW(INDIRECT("1:"&LEN($A2)))-1)*100+1,100)),"!"&B1)))}
为了更安全,您可以将上面公式中的!替换为永远不会出现在文本字符串中的唯一符号。逻辑是SUBSTITUTE逗号,与一长串空格,然后使用MID查找文本字符串中的每个值并将结果作为数组返回,然后使用EXACT将数组中的每个值与查找值匹配并返回TRUE和FALSE的新数组,然后对所有TRUE进行求和,这将给予查找值的计数。
!
,
TRUE
FALSE
更新#2
根据OP的要求,这里有一种解决第二个查询的方法,即匹配由逗号,分隔的两个文本字符串中出现次数相同的相同值。
单元格C2中的公式来自原始解,用于查找给定值在文本字符串中的出现;范围C6:K6的公式是一个数组公式,如下所示。我使用了一个帮助行来布局匹配的值,并排除了两个数据集都有0计数的值;
C2
C6:K6
0
{=IFERROR(INDEX($C$1:$K$1,,AGGREGATE(15,7,COLUMN(INDIRECT("1:"&COLUMNS($C$1:$K$1)))/($C$2:$K$2=$C$3:$K$3)/($C$2:$K$2>0),COLUMN()-2))&",","")}
单元格L8中的公式连接范围C6:K6中的所有值,并从最终文本字符串中删除最后一个逗号,:
L8
=LEFT(CONCATENATE(C6,D6,E6,F6,G6,H6,I6,J6,K6),LEN(CONCATENATE(C6,D6,E6,F6,G6,H6,I6,J6,K6))-1)
zqry0prt2#
以下对我有效,试一试:
B2中的公式:
B2
=(LEN(","&SUBSTITUTE($A$2,",",",,")&",")-LEN(SUBSTITUTE(","&SUBSTITUTE($A$2,",",",,")&",",","&B$1&",","")))/LEN(","&B$1&",")
向右拖...
uxh89sit3#
一种更简单的方法是计算字符串长度减去用空值替换搜索值时字符串长度的差值,然后除以搜索的字符串长度。公式如下:
=(LEN($A$1)+1-LEN(SUBSTITUTE($A$1&",",B1&",","")))/LEN(B1&",")
6rqinv9w4#
有一个简单得多的解决方案:
=COUNTIF(SPLIT($A$2, ","), B1)
4条答案
按热度按时间t5fffqht1#
可能不是最好的解决方案,但可以完成工作。请注意,它是区分大小写的,请确保在完成此公式后按Ctrl+Shift+Enter。
为了更安全,您可以将上面公式中的
!
替换为永远不会出现在文本字符串中的唯一符号。逻辑是SUBSTITUTE逗号
,
与一长串空格,然后使用MID查找文本字符串中的每个值并将结果作为数组返回,然后使用EXACT将数组中的每个值与查找值匹配并返回TRUE
和FALSE
的新数组,然后对所有TRUE
进行求和,这将给予查找值的计数。更新#2
根据OP的要求,这里有一种解决第二个查询的方法,即匹配由逗号
,
分隔的两个文本字符串中出现次数相同的相同值。单元格
C2
中的公式来自原始解,用于查找给定值在文本字符串中的出现;范围
C6:K6
的公式是一个数组公式,如下所示。我使用了一个帮助行来布局匹配的值,并排除了两个数据集都有0
计数的值;单元格
L8
中的公式连接范围C6:K6
中的所有值,并从最终文本字符串中删除最后一个逗号,
:zqry0prt2#
以下对我有效,试一试:
B2
中的公式:向右拖...
uxh89sit3#
一种更简单的方法是计算字符串长度减去用空值替换搜索值时字符串长度的差值,然后除以搜索的字符串长度。公式如下:
6rqinv9w4#
有一个简单得多的解决方案: