Как вы извлекаете символы из строки? - PullRequest
1 голос
/ 07 ноября 2019

Я хочу отправлять электронные письма с моего листа Google. Я хочу, чтобы электронные письма адресовали получателей по имени или по имени, под которым они известны. Ниже приведен пример моих данных в столбце A.

Sample Data

Мне нужна формула в столбце B, которая извлекает имя из столбца A, но еслиони известны под другим именем, имя в скобках в столбце A, тогда я хочу, чтобы это имя было извлечено в столбец B. У меня есть следующая формула, которая работает для имен в скобках, но мне нужна помощь с формулой, чтобы извлечь имя, когда нет скобок.

=(SPLIT(REGEXEXTRACT(A2,"\((.*)\)"),","))

Ответы [ 3 ]

1 голос
/ 08 ноября 2019

одноклеточный раствор:

=ARRAYFORMULA(IFNA(IFNA(
 REGEXEXTRACT(A2:A, "\((.*)\)"), 
 REGEXEXTRACT(A2:A, ", (.*)"))))

0

1 голос
/ 07 ноября 2019

Попробуй это. В B2 введите следующую формулу:

=iferror(SPLIT(REGEXEXTRACT(A2,"\((.*)\)"),","), mid(A2, find(", ", A2)+2, len(A2)))

Объяснение:

Первая часть ваша: SPLIT (REGEXEXTRACT (A2, "((. *))"), ",")

Как вы уже видели, это возвращает #ERROR, если "(" не найдено. Поэтому используйте iferror, чтобы обернуть это. Вторая часть возвращается, если есть ошибка: = mid (A2, find (",", A2) +2, len (A2))

Функция mid() возвращает подстроку из строки. Первым аргументом является искомая строка, найденнаяв A2. Затем, начальной позицией подстроки является местоположение "," (смещение на 2), и продолжается до конца строки.

0 голосов
/ 07 ноября 2019

Попробуй это. В B1 введите следующую формулу:

={"Salutation";arrayformula(if(A2:A="","",iferror((SPLIT(REGEXEXTRACT(A2:A,"\((.*)\)"),",")),index(split(A2:A," "),,2))))}

Объяснение:

Первая часть - ваша: SPLIT (REGEXEXTRACT (A2, "((. *))"), ",")

Как вы видели, это возвращает #ERROR, если "(" не найдено. Поэтому используйте iferror, чтобы обернуть это. Вторая часть возвращается, если есть ошибка: index (split (A2: A, "") ,, 2)

Функция index () возвращает второй столбец из split (). Преимущество такого способа заключается в том, что вам не придется перетаскивать формулы вниз.

...