У меня есть список многих имен (> 1.000.000), которые мне нужно проверить на наличие диакритических знаков. Поскольку набор данных закодирован в UTF-8 de-DE, я должен учитывать специальные символы, такие как ö,ä,ü
.
Имена также могут содержать символы, такие как , - ' .
и, конечно, spaces
для отчеств.
Это то, что я до сих пор придумал:
Я беру каждое имя и разбиваю его на отдельные символы по очереди. Формула для B1: =ArrayFormula((LOWER(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))))
Следующим шагом является сравнение каждой строки в B
с массивом разрешенных символов, который пришла ко мне более простая идея, чем выяснить, какие символы недопустимы: {"a"\"b"\"c"\"d"\"e"\"f"\"g"\"h"\"i"\"j"\"k"\"l"\"m"\"n"\"o"\"p"\"q"\"r"\"s"\"t"\"u"\"v"\"w"\"x"\"y"\"z"\"."\"'"\" "\"ö"\"ä"\"ü"\"-"\","}
Формула для C: =ArrayFormula(SUM(--(LOWER(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))={"a"\"b"\"c"\"d"\"e"\"f"\"g"\"h"\"i"\"j"\"k"\"l"\"m"\"n"\"o"\"p"\"q"\"r"\"s"\"t"\"u"\"v"\"w"\"x"\"y"\"z"\"."\"'"\" "\"ö"\"ä"\"ü"\"-"\","}))=LEN(A1))
, которая возвращает TRUE
или FALSE
.
Этот подход занимает довольно много времени для такого количества строк. Есть ли лучший, быстрый и лаконичный подход?