如何在 Excel 中使 FIND 函数精确
How to make FIND function exact in Excel
我在 Excel 中使用 FIND 函数来检查某些字符是否出现在单元格的字符串中。
但是,此功能对于某些特殊字符无法正常工作。特别是 F̌、B̌ 和其他一些。当 F̌ 出现在字符串中时,FIND 将其识别为 F 和 F̌。
值得注意的是,对于 Ď 和 Č 等字符,情况并非如此。 FIND 非常适合这些。
如何让公式始终区分带帽子和不带帽子的角色?有没有办法在 EXACT 中工作?
谢谢!
因为F̌
其实是两个字符
=LEN("F̌")
returns 2
不是 1
。第二个字是帽子
如果你这样做:
=UNICHAR(70)&UNICHAR(780)
它将 return F̌
因此 =FIND("F","F̌")
将 return 1
因为它是两个字符串的第一个字母。
要在 A,B,F̌,F
中查找 "F" 使用:
=AGGREGATE(15,7,ROW($ZZ1:INDEX($ZZ:$ZZ,LEN(A1)))/((MID(A1,ROW($ZZ1:INDEX($ZZ:$ZZ,LEN(A1))),1)="F")*(MID(A1,ROW($ZZ2:INDEX($ZZ:$ZZ,LEN(A1)+1)),1)<>UNICHAR(780))),1)
要找到其中一个,我们需要使用 IF:
=IF(LEN(A2)=2,FIND(A2,A1),AGGREGATE(15,7,ROW($ZZ:INDEX($ZZ:$ZZ,LEN(A1)))/((MID(A1,ROW($ZZ:INDEX($ZZ:$ZZ,LEN(A1))),1)=A2)*(MID(A1,ROW($ZZ:INDEX($ZZ:$ZZ,LEN(A1)+1)),1)<>UNICHAR(780))),1))
鉴于您的子字符串是逗号分隔的,请查找后跟逗号的字符(并在字符串末尾添加逗号以查找最后一个字符)。
这允许您将多字符子字符串与单字符子字符串分开,后者包含在前者中。
您可以使用类似的东西:
=FIND("F,",A5&",")
这将在 A5 中找到 F
,但如果只有 F̌
存在,则不会找到 F
我在 Excel 中使用 FIND 函数来检查某些字符是否出现在单元格的字符串中。
但是,此功能对于某些特殊字符无法正常工作。特别是 F̌、B̌ 和其他一些。当 F̌ 出现在字符串中时,FIND 将其识别为 F 和 F̌。
值得注意的是,对于 Ď 和 Č 等字符,情况并非如此。 FIND 非常适合这些。
如何让公式始终区分带帽子和不带帽子的角色?有没有办法在 EXACT 中工作?
谢谢!
因为F̌
其实是两个字符
=LEN("F̌")
returns 2
不是 1
。第二个字是帽子
如果你这样做:
=UNICHAR(70)&UNICHAR(780)
它将 return F̌
因此 =FIND("F","F̌")
将 return 1
因为它是两个字符串的第一个字母。
要在 A,B,F̌,F
中查找 "F" 使用:
=AGGREGATE(15,7,ROW($ZZ1:INDEX($ZZ:$ZZ,LEN(A1)))/((MID(A1,ROW($ZZ1:INDEX($ZZ:$ZZ,LEN(A1))),1)="F")*(MID(A1,ROW($ZZ2:INDEX($ZZ:$ZZ,LEN(A1)+1)),1)<>UNICHAR(780))),1)
要找到其中一个,我们需要使用 IF:
=IF(LEN(A2)=2,FIND(A2,A1),AGGREGATE(15,7,ROW($ZZ:INDEX($ZZ:$ZZ,LEN(A1)))/((MID(A1,ROW($ZZ:INDEX($ZZ:$ZZ,LEN(A1))),1)=A2)*(MID(A1,ROW($ZZ:INDEX($ZZ:$ZZ,LEN(A1)+1)),1)<>UNICHAR(780))),1))
鉴于您的子字符串是逗号分隔的,请查找后跟逗号的字符(并在字符串末尾添加逗号以查找最后一个字符)。
这允许您将多字符子字符串与单字符子字符串分开,后者包含在前者中。
您可以使用类似的东西:
=FIND("F,",A5&",")
这将在 A5 中找到 F
,但如果只有 F̌
存在,则不会找到 F