我需要一个公式来计算以逗号分隔的字符串中以特定数字开头的数字
第一个数字始终是 1、2 或 3;第二个数字可以在 1 到 6 之间。我需要计算以 1、2 和 3 开头的字符串中的数字;如果这些计数大于零,则计算它们与第二个数字的组合。
以下是预期解决方案的示例。假设 A1 包含以下字符串:
11234,12345, 23456, 31423, 13009, 14001,24005, 12222, 21222, 33215, 21236
然后:
- B1 应返回 5(字符串中以 1 开头的所有数字的计数)
- C1 应为 3(以 2 开头的字符串中所有数字的计数)
- D1 应为 2(以 3 开头的字符串中所有数字的计数)
答案1
这个怎么样:
=(LEN(","&SUBSTITUTE($A$1,", ",","))-LEN(SUBSTITUTE(","&SUBSTITUTE($A$1,", ",","), ","&B2,"")))/LEN(","&B2)
(其中行乙包含您尝试在 A1 中匹配的字符串。)
怎么运行的:
- 你可能会注意到,这句话出现了两次:
","&SUBSTITUTE($A$1,", ",",")
这会去掉空格,并在前面添加一个逗号,这样你的
原始字符串: 11234,12345, 23456, 31423, 13009, 14001,24005, 12222, 21222, 33215, 21236
变成
新字符串: ,11234,12345,23456,31423,13009,14001,24005,12222,21222, 33215,21236
现在,长公式可以重写为:
=(LEN(newString)-LEN(SUBSTITUTE(newString, ","&B2,""))) /LEN(","&B2)
假设您要查找的初始数字是B1(例如B1
=1
这进一步崩溃如下:
=(LEN(newString)-LEN(SUBSTITUTE(newString, ",1" ))) /LEN(",1")
- 因此我们有:获取整个新字符串的长度 (67),然后减去所有
,1
删除的出现次数的长度 (57)。这样就得到了 (10) 所占的字符数,1
。除以,1
(2) 的长度,即可知道出现了多少次,1
。(5)
您可以将此公式拖到 A 行,并在行中输入不同的“搜索”数字乙它会把所有数字都计算出来。
警告: 这仅当数字以逗号分隔和/或逗号空格分隔时才有效,如您的示例所示。
答案2
https://exceljet.net/formula/count-numbers-that-begin-with看看这个网站。所以公式是:=SUMPRODUCT(--(LEFT(L1:X20,1)="(在此处输入您要查找的数字)“))