求助:如何在Google Sheets中生成店铺的唯一辅音编码
解决Google Sheets中店铺名重复辅音编码的问题
步骤1:优化辅音提取公式
你原来嵌套SUBSTITUTE的写法可以简化,用REGEXREPLACE直接移除所有元音,更简洁高效:
=REGEXREPLACE(LOWER(A2), "[aeiou]", "")
这个公式会把店铺名转小写后,剔除所有元音字母,得到纯辅音字符串(比如Apple转成ppl,Electronics转成lctrncs)。
步骤2:处理重复编码的核心公式
要自动处理重复编码并按规则调整,直接用数组公式一次性生成整列编码,无需手动下拉。把以下公式粘贴到B2单元格(假设店铺名从A2开始):
=ARRAYFORMULA( LET( consonants, REGEXREPLACE(LOWER(A2:A), "[aeiou]", ""), initial_codes, LEFT(consonants, 3), repeat_counts, BYROW(ROW(A2:A), LAMBDA(r, COUNTIF(initial_codes, INDEX(initial_codes, r - ROW(A2) + 1)) - 1)), IF( consonants = "", "", IF( repeat_counts = 0, initial_codes, LEFT(consonants, 2) & MID(consonants, MIN(3 + repeat_counts, LEN(consonants)), 1) ) ) ) )
公式逻辑说明
consonants变量:提取每个店铺名的所有辅音字母,生成纯辅音字符串。initial_codes变量:取每个辅音字符串的前3个字符,作为初始编码。repeat_counts变量:统计当前初始编码在所有已生成编码中的重复次数(第一次出现为0,第二次为1,以此类推)。- 编码生成逻辑:
- 无重复(
repeat_counts=0)时,直接使用初始编码; - 重复时,取前2个辅音 + 第
3+重复次数个辅音(比如第一次重复取前2+第4个,第二次重复取前2+第5个); - 加入
MIN函数处理边界:如果辅音字符串长度不足,自动取最后一个辅音补充,避免报错。
- 无重复(
示例验证
- 店铺名
Apple→ 辅音ppl→ 无重复 → 编码PPL - 店铺名
Electronics→ 辅音lctrncs→ 无重复 → 编码LCT - 第二个店铺初始编码为
PPL、辅音字符串为pplx→ 重复次数1 → 编码PPX - 第三个店铺初始编码为
PPL、辅音字符串为pplxy→ 重复次数2 → 编码PPY
内容的提问来源于stack exchange,提问作者nimodo
相关产品推荐
相关产品推荐

