通过 Google 工作表上的公式删除变音符号(第 2 部分)
Remove diacritics via formula on Google Sheets (Part 2)
在 Whosebug 成员的帮助下,我们创建了一种从个人姓名中删除变音符号的方法,这些变音符号保存在一个列表中,当它们出现在他们的名字中时,它们将被删除并转换为常见的键盘字母。
=ARRAYFORMULA(PROPER(IFERROR(REGEXREPLACE(C2:C, TEXTJOIN("|", 1, A2:A1000),
VLOOKUP(REGEXEXTRACT(C2:C, TEXTJOIN("|", 1, A2:A1000)), A2:B1000, 2*
SIGN(ROW(A2:A1000)), 0)&""), C2:C)))
但是......发生的事情是,在其中一个名称中,不是将字母“í”转换为 "i" 的公式,而是转换为 "a"
我想帮助找出发生了什么,因为这是第一次发生这种情况,我找不到问题所在。
名字是:
Á. Di María
并转换为:
A. Di Maraa
正确的形式是:
A. Di Maria
两个变音符号都保存在转换列表中,所以这不是我的错,我缺少一些东西但我不知道它是什么。
我将 link 留给了电子表格,这样您就可以更容易地理解发生了什么:
https://docs.google.com/spreadsheets/d/1yfB8GskVU_ciFKuzae9XQF-pi3y6jsYtsanN46vmNOs/edit?usp=sharing
=ARRAYFORMULA(PROPER(SUBSTITUTE(SUBSTITUTE(TRANSPOSE(QUERY(TRANSPOSE(
IFERROR(REGEXREPLACE(REGEXEXTRACT(LOWER(
SUBSTITUTE(INDIRECT("C2:C"&COUNTA(C2:C)+1), " ", "♥")), REPT("(.)",
LEN(INDIRECT("C2:C"&COUNTA(C2:C)+1)))), VLOOKUP(REGEXEXTRACT(LOWER(
SUBSTITUTE(INDIRECT("C2:C"&COUNTA(C2:C)+1), " ", "♥")), REPT("(.)",
LEN(INDIRECT("C2:C"&COUNTA(C2:C)+1)))), LOWER(A:B), 1, 0), VLOOKUP(REGEXEXTRACT(
SUBSTITUTE(INDIRECT("C2:C"&COUNTA(C2:C)+1), " ", "♥"), REPT("(.)",
LEN(INDIRECT("C2:C"&COUNTA(C2:C)+1)))), LOWER(A:B), 2, 0)), REGEXEXTRACT(
SUBSTITUTE(INDIRECT("C2:C"&COUNTA(C2:C)+1), " ", "♥"), REPT("(.)",
LEN(INDIRECT("C2:C"&COUNTA(C2:C)+1)))))),,999^99)), " ", ), "♥", " ")))
在 Whosebug 成员的帮助下,我们创建了一种从个人姓名中删除变音符号的方法,这些变音符号保存在一个列表中,当它们出现在他们的名字中时,它们将被删除并转换为常见的键盘字母。
=ARRAYFORMULA(PROPER(IFERROR(REGEXREPLACE(C2:C, TEXTJOIN("|", 1, A2:A1000),
VLOOKUP(REGEXEXTRACT(C2:C, TEXTJOIN("|", 1, A2:A1000)), A2:B1000, 2*
SIGN(ROW(A2:A1000)), 0)&""), C2:C)))
但是......发生的事情是,在其中一个名称中,不是将字母“í”转换为 "i" 的公式,而是转换为 "a"
我想帮助找出发生了什么,因为这是第一次发生这种情况,我找不到问题所在。
名字是:
Á. Di María
并转换为:
A. Di Maraa
正确的形式是:
A. Di Maria
两个变音符号都保存在转换列表中,所以这不是我的错,我缺少一些东西但我不知道它是什么。
我将 link 留给了电子表格,这样您就可以更容易地理解发生了什么:
https://docs.google.com/spreadsheets/d/1yfB8GskVU_ciFKuzae9XQF-pi3y6jsYtsanN46vmNOs/edit?usp=sharing
=ARRAYFORMULA(PROPER(SUBSTITUTE(SUBSTITUTE(TRANSPOSE(QUERY(TRANSPOSE(
IFERROR(REGEXREPLACE(REGEXEXTRACT(LOWER(
SUBSTITUTE(INDIRECT("C2:C"&COUNTA(C2:C)+1), " ", "♥")), REPT("(.)",
LEN(INDIRECT("C2:C"&COUNTA(C2:C)+1)))), VLOOKUP(REGEXEXTRACT(LOWER(
SUBSTITUTE(INDIRECT("C2:C"&COUNTA(C2:C)+1), " ", "♥")), REPT("(.)",
LEN(INDIRECT("C2:C"&COUNTA(C2:C)+1)))), LOWER(A:B), 1, 0), VLOOKUP(REGEXEXTRACT(
SUBSTITUTE(INDIRECT("C2:C"&COUNTA(C2:C)+1), " ", "♥"), REPT("(.)",
LEN(INDIRECT("C2:C"&COUNTA(C2:C)+1)))), LOWER(A:B), 2, 0)), REGEXEXTRACT(
SUBSTITUTE(INDIRECT("C2:C"&COUNTA(C2:C)+1), " ", "♥"), REPT("(.)",
LEN(INDIRECT("C2:C"&COUNTA(C2:C)+1)))))),,999^99)), " ", ), "♥", " ")))