如何在另一列的每一行中搜索字符串数组并获取 excel 中的计数
How to search for array of string in each row of another column and get the count in excel
我有一个 excel,其中有一个地址列和另一个包含查找字符串列表的查找列(列表):-
Address
List
St Dunstans Street; Waterlooville; PO7 5YT; United Kingdom
London
Simone Weil Avenue; Week; EX18 0DJ; United Kingdom
Whitehill
Greyfriars Road; Carbrooke; IP25 8PW; United Kingdom
Southampton
Terrick Rd; Elham; CT4 9GQ; United Kingdom
Jameston
Earls Avenue; Whitehill; ME13 2QW; United Kingdom
United Kingdom
Cheriton Rd; West Newton; HU11 7LB; United Kingdom
Marlborough Crescent; Southampton; SO15 4JL; United Kingdom
Baldock Street; Newton; ML12 6PZ; United Kingdom
我想搜索 Address 列中 List 中的所有字符串和 return 匹配的字符串数
我想要达到的目标:-
Address
Count_Flag
List
St Dunstans Street; Waterlooville; PO7 5YT; United Kingdom
1
London
Simone Weil Avenue; Week; EX18 0DJ; United Kingdom
1
Whitehill
Greyfriars Road; Carbrooke; IP25 8PW; United Kingdom
1
Southampton
Terrick Rd; Elham; CT4 9GQ; United Kingdom
1
Jameston
Earls Avenue; Whitehill; ME13 2QW; United Kingdom
2
United Kingdom
Cheriton Rd; West Newton; HU11 7LB; United Kingdom
1
Marlborough Crescent; Southampton; SO15 4JL; United Kingdom
2
Baldock Street; Newton; ML12 6PZ; United Kingdom
1
我试过这样的事情:
=--ISNUMBER(SEARCH(@$D:$D,A2))
您可以尝试将通配符与 COUNTIFS()
函数一起使用。
=COUNTIFS(A2:A9,"*"&C2&"*")
您可以使用:
B2
中的公式:
=SUM(--ISNUMBER(FIND("; "&D:D&";","; "&A2&";")))
或者,如果您没有 ms365,则使用 SUMPRODUCT()
而不是 SUM()
。
请注意,串联的 semi-colons 用于防止误报匹配。向下拖动公式。
您可以简单地使用这个公式,如下图所示
单元格 B2 中使用的公式
=SUMPRODUCT(--ISNUMBER(SEARCH($D:$D,$A2)))
公式中各函数的分解:-
SEARCH($D:$D,$A2)
SEARCH 函数 return 是一个文本字符串在另一个文本字符串中的位置。搜索 returns within_text 中 find_text 的第一个字符的位置。与 FIND 不同,SEARCH 允许通配符,而不是 case-sensitive.
{#VALUE!;#VALUE!;#VALUE!;#VALUE!;45}
这就是 return 当你 select 并按 F9 时的位置
接下来,我们需要检查它是否是一个数字,所以我们使用下面的
ISNUMBER(SEARCH($D:$D,$A2))
And Returns TRUE 和 FALSE 的数组
{FALSE;FALSE;FALSE;FALSE;TRUE}
为了将其转换为 BOOLEAN
VALUES,我们使用双重否定将 TRUE 或 FALSE 值强制转换为其数字等价物,1 和 0
--ISNUMBER(SEARCH($D:$D,$A2))
以上转换为1 & 0
{0;0;0;0;1}
现在我们可以简单地将整个包含在 SUMPRODUCT 中以获得计数
我有一个 excel,其中有一个地址列和另一个包含查找字符串列表的查找列(列表):-
Address | List | ||
---|---|---|---|
St Dunstans Street; Waterlooville; PO7 5YT; United Kingdom | London | ||
Simone Weil Avenue; Week; EX18 0DJ; United Kingdom | Whitehill | ||
Greyfriars Road; Carbrooke; IP25 8PW; United Kingdom | Southampton | ||
Terrick Rd; Elham; CT4 9GQ; United Kingdom | Jameston | ||
Earls Avenue; Whitehill; ME13 2QW; United Kingdom | United Kingdom | ||
Cheriton Rd; West Newton; HU11 7LB; United Kingdom | |||
Marlborough Crescent; Southampton; SO15 4JL; United Kingdom | |||
Baldock Street; Newton; ML12 6PZ; United Kingdom |
我想搜索 Address 列中 List 中的所有字符串和 return 匹配的字符串数 我想要达到的目标:-
Address | Count_Flag | List | |
---|---|---|---|
St Dunstans Street; Waterlooville; PO7 5YT; United Kingdom | 1 | London | |
Simone Weil Avenue; Week; EX18 0DJ; United Kingdom | 1 | Whitehill | |
Greyfriars Road; Carbrooke; IP25 8PW; United Kingdom | 1 | Southampton | |
Terrick Rd; Elham; CT4 9GQ; United Kingdom | 1 | Jameston | |
Earls Avenue; Whitehill; ME13 2QW; United Kingdom | 2 | United Kingdom | |
Cheriton Rd; West Newton; HU11 7LB; United Kingdom | 1 | ||
Marlborough Crescent; Southampton; SO15 4JL; United Kingdom | 2 | ||
Baldock Street; Newton; ML12 6PZ; United Kingdom | 1 |
我试过这样的事情:
=--ISNUMBER(SEARCH(@$D:$D,A2))
您可以尝试将通配符与 COUNTIFS()
函数一起使用。
=COUNTIFS(A2:A9,"*"&C2&"*")
您可以使用:
B2
中的公式:
=SUM(--ISNUMBER(FIND("; "&D:D&";","; "&A2&";")))
或者,如果您没有 ms365,则使用 SUMPRODUCT()
而不是 SUM()
。
请注意,串联的 semi-colons 用于防止误报匹配。向下拖动公式。
您可以简单地使用这个公式,如下图所示
单元格 B2 中使用的公式
=SUMPRODUCT(--ISNUMBER(SEARCH($D:$D,$A2)))
公式中各函数的分解:-
SEARCH($D:$D,$A2)
SEARCH 函数 return 是一个文本字符串在另一个文本字符串中的位置。搜索 returns within_text 中 find_text 的第一个字符的位置。与 FIND 不同,SEARCH 允许通配符,而不是 case-sensitive.
{#VALUE!;#VALUE!;#VALUE!;#VALUE!;45}
这就是 return 当你 select 并按 F9 时的位置
接下来,我们需要检查它是否是一个数字,所以我们使用下面的
ISNUMBER(SEARCH($D:$D,$A2))
And Returns TRUE 和 FALSE 的数组
{FALSE;FALSE;FALSE;FALSE;TRUE}
为了将其转换为 BOOLEAN
VALUES,我们使用双重否定将 TRUE 或 FALSE 值强制转换为其数字等价物,1 和 0
--ISNUMBER(SEARCH($D:$D,$A2))
以上转换为1 & 0
{0;0;0;0;1}
现在我们可以简单地将整个包含在 SUMPRODUCT 中以获得计数