Google 表格公式检查字符串是否包含另一个字符串中的所有未排序字符(不是 App 脚本)?
Google Sheets formula to check if string contains ALL unsorted characters in another string (Not App Script)?
我需要一个 Google Sheets 本机公式(不是 App 脚本函数),如果字符串 A 中存在字符串 B 中的所有字符,则 return 为真。
例如,如果 A = ‘CDEFGH’
- 如果 B = ‘EDX’ —> Match = False(字符 X 不在字符串 A 中)
- If B = ‘HCE’ —> Match = True(字符H、C、E都在字符串A中)
注意以下几点:
- B 中的字符可以按任何顺序排列且不一定连续 - 我需要检查字符串 A 中是否存在 B 的所有(不是任何)字符(以任何顺序)。
- 我知道如何在 App Script 中执行此操作,但它对我的应用程序来说太慢了,因为我需要调用此函数数千次。因此,解决方案必须使用 Google Sheets 本机内置函数,不包括 App Script。
- 我很乐意使用正则表达式来做到这一点。如果是这样,请告诉我如何获取 Google 表格以读取单元格中的字符串 A 和 B 以及 return true/false 当满足上述条件时。
尝试
=arrayformula(sum(--REGEXMATCH(B1,split(REGEXREPLACE($A,"(.)","~"),"~"))))=len(B1)
说明
REGEXREPLACE($A,"(.)","~")
将在每个字符后添加波浪号
- 然后将结果除以
~
- 比较
REGEXMATCH(B1,split(REGEXREPLACE(A1,"(.)","~"),"~"))
- 然后求和(
--
将布尔值转换为数字)并与 A1 的长度进行比较
分机
为避免重复,尝试
=arrayformula(sum(--REGEXMATCH(B1,unique(transpose(split(REGEXREPLACE($A,"(.)","~"),"~"))))))=len(join("",unique(transpose(split(REGEXREPLACE(B1,"(.)","~"),"~")))))
我需要一个 Google Sheets 本机公式(不是 App 脚本函数),如果字符串 A 中存在字符串 B 中的所有字符,则 return 为真。
例如,如果 A = ‘CDEFGH’
- 如果 B = ‘EDX’ —> Match = False(字符 X 不在字符串 A 中)
- If B = ‘HCE’ —> Match = True(字符H、C、E都在字符串A中)
注意以下几点:
- B 中的字符可以按任何顺序排列且不一定连续 - 我需要检查字符串 A 中是否存在 B 的所有(不是任何)字符(以任何顺序)。
- 我知道如何在 App Script 中执行此操作,但它对我的应用程序来说太慢了,因为我需要调用此函数数千次。因此,解决方案必须使用 Google Sheets 本机内置函数,不包括 App Script。
- 我很乐意使用正则表达式来做到这一点。如果是这样,请告诉我如何获取 Google 表格以读取单元格中的字符串 A 和 B 以及 return true/false 当满足上述条件时。
尝试
=arrayformula(sum(--REGEXMATCH(B1,split(REGEXREPLACE($A,"(.)","~"),"~"))))=len(B1)
说明
REGEXREPLACE($A,"(.)","~")
将在每个字符后添加波浪号- 然后将结果除以
~
- 比较
REGEXMATCH(B1,split(REGEXREPLACE(A1,"(.)","~"),"~"))
- 然后求和(
--
将布尔值转换为数字)并与 A1 的长度进行比较
分机
为避免重复,尝试
=arrayformula(sum(--REGEXMATCH(B1,unique(transpose(split(REGEXREPLACE($A,"(.)","~"),"~"))))))=len(join("",unique(transpose(split(REGEXREPLACE(B1,"(.)","~"),"~")))))