Удалить диакритические знаки с помощью формулы в Google Sheets (часть 2) - PullRequest
1 голос
/ 01 октября 2019

С помощью члена StackOverflow мы создали способ удаления диакритических знаков из личных имен, эти диакритические знаки сохраняются в списке и по мере появления в их именах удаляются и преобразуются в обычные буквы клавиатуры.

=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

Обе диакритические знаки сохранены в списке преобразования, так что это не ошибка, что-то не хватает, но я не знаю, что это.

Я оставляю здесь ссылку на электронную таблицу, чтобы вам было легче понять, что произошло:

https://docs.google.com/spreadsheets/d/1yfB8GskVU_ciFKuzae9XQF-pi3y6jsYtsanN46vmNOs/edit?usp=sharing

1 Ответ

1 голос
/ 02 октября 2019
=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)), " ", ), "♥", " ")))

0

...