You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Query自定义列:实现省份编码变更的布尔值判断

Excel判断单元格内省份代码是否存在差异的公式方案

需求说明

Excel某列单元格内容为类似SK36 > SK30 > AB01的省份编码串,仅需关注每个编码的前两位字母(省份代码),忽略后续数字。需编写公式实现:

  • 单元格内存在至少一个不同省份代码时,返回True
  • 所有省份代码完全相同时,返回False

解决方案

方法1:适用于Excel 365/2021(支持TEXTSPLIT函数)

假设目标单元格为A1,使用以下公式:

=NOT(COUNTUNIQUE(LEFT(TEXTSPLIT(A1," > "),2))=1)

公式逻辑:

  1. TEXTSPLIT(A1," > "):将单元格内容按>拆分,得到所有编码的数组
  2. LEFT(...,2):提取每个编码的前两位字母,得到省份代码数组
  3. COUNTUNIQUE(...):统计数组中不同省份代码的数量
  4. NOT(...):当数量等于1(全相同)时返回False,数量大于1(存在差异)时返回True

方法2:适用于旧版Excel(无TEXTSPLIT函数)

使用数组公式(输入后按Ctrl+Shift+Enter确认):

=NOT(SUMPRODUCT(--(LEFT(MID(SUBSTITUTE(A1," > ","|"),FIND("|",SUBSTITUTE(A1," > ","|",ROW(INDIRECT("1:"&LEN(A1)-LEN(SUBSTITUTE(A1," > ",""))+1)))-1,2),2)<>LEFT(A1,2)))=0)

公式逻辑:

  1. 通过SUBSTITUTE和MID函数拆分出每个编码的前两位字母
  2. 对比每个省份代码是否与第一个编码的省份代码一致
  3. SUMPRODUCT统计不一致的数量,若为0则说明全相同,NOT()取反得到最终结果

示例修正

你给出的示例逻辑存在混淆,按照需求正确结果应为:

  • AB01 > AB55 > AB75(全为AB)→ 返回False
  • SK36 > SK30 > AB01(含SK、AB两种)→ 返回True

内容的提问来源于stack exchange,提问作者Olendris63

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 14:57:46