Ячейки «Найти значение» содержат диакритические знаки и фильтр в одном столбце - PullRequest
1 голос
/ 27 сентября 2019

Я импортирую личные имена в свою электронную таблицу, и при каждом импорте я получаю разные имена.Чтобы сопоставить прошлые имена сохранений и выяснить, существуют ли какие-либо имена в этом новом импорте, они помогли мне создать способ удаления диакритических знаков из слов и сохранения в column E.Пример → ( Удалить все диакритические знаки без сценария с единой формулой для использования во всех ячейках без вызова Google API )

Имена регистрируются только с алфавитом из общих буквБразильская клавиатура.

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

Но когда я импортирую эти данные, например, шведские имена приходят с различными акцентами и странными буквами.Я хотел бы создать формулу в Column B, которая бы находила все имена в Column A, в которых были бы какие-либо буквы, кроме общего алфавита на моей клавиатуре.Если он существует, он появляется, если нет, то он не появляется.

Примерно так:

Fabio        João
Lucas        Caçandrà
João         Sølskjaer
Caçandrà     Alemão
Sølskjaer
Alemão

Было бы еще лучше, если бы появилась только другая буква, например:

Fabio        ã
Lucas        çà
João         ø
Caçandra     ã
Sølskjaer
Alemão

И если в каждом имени более одной буквы, то два диакритика не появляются в одной ячейке, а всегда в ячейке ниже, например:

Fabio        ã
Lucas        ç
João         à
Caçandra     ø
Sølskjaer    ã
Alemão

Я считаю,использование было бы через FILTER функцию, но поскольку мне нужно обратное (слова, содержащие значения, отличные от общего алфавита, я не могу собрать).

Таким образом, я могу создать скрипт, который всякий раз, когдаПри импорте я нахожу другое имя, оно зарегистрирует его в Column J, чтобы я мог увидеть и зарегистрировать этот новый диакритик в своем списке, например:

for (var i = 1; i < 100; i++) {

  var cel = "B"+ i //

  if (sheet.getRange(cel).getValue() != "")  {   

    for (var u = 1; u < 1000; u++) {
      var cel2 = "J"+ u //

      if (sheet.getRange(cel2).getValue() == "")  { 

        sheet.getRange("J"+u).setValue(sheet.getRange(cel).getValue());
        break;
      }
    }
  }
};

1 Ответ

0 голосов
/ 27 сентября 2019
=ARRAYFORMULA(IFERROR(REGEXEXTRACT(A1:A, "[^(A-Za-z)]")))

0


=ARRAYFORMULA(TRANSPOSE(REGEXEXTRACT(
 TEXTJOIN(, 1, IFERROR(REGEXEXTRACT(A1:A, "[^(A-Za-z)]+"))), REPT("(.)", LEN(
 TEXTJOIN(, 1, IFERROR(REGEXEXTRACT(A1:A, "[^(A-Za-z)]+"))))))))

0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...