#google-sheets
#google-sheets
Вопрос:
Я пытаюсь заставить эту формулу работать для смеси текста и чисел. Это работает для текста, содержащего только 4 числа. Как я могу манипулировать этим, чтобы соответствовать определенным словам, например Text Text 50
, или даже. random 2020 text
Мне нужно жестко закодировать слова в формуле или использовать КОСВЕННУЮ ссылку на ячейку.
Формула, которую я получил.
=ArrayFormula(IF(A:A="",,TRIM(IFERROR(REGEXEXTRACT(A:A,"^([øa-zA-Z-/ ] )"))amp;IFERROR(REGEXEXTRACT(A:A," [0-9]{4}")))))
Я хочу, чтобы формула извлекала эти конкретные слова такими, какие они есть, без их обрезки. Эта формула работает для других строк, кроме тех, которые представляют собой смесь чисел и текста.
Я попытался отредактировать свою формулу следующим образом, но мне это не удалось.
=ArrayFormula(IF(A:A="",,TRIM(IFERROR(REGEXEXTRACT(A:A,"^([[:Text Text 50:]][[:random 2020 text:]][øa-zA-Z-/ ] )"))amp;IFERROR(REGEXEXTRACT(A:A," [0-9]{4}")))))
Ссылка на мою электронную таблицу — https://docs.google.com/spreadsheets/d/1BYW-QzqRA8vIBWazDSZhbUZ_TCbVAPYSI-1hFthfrew/edit?usp=sharing
Комментарии:
1. Не могли бы вы добавить, пожалуйста, как вы хотите, чтобы выглядели результаты?
2. Так же, как вы используете d для указания цифр 0-9, мне нужно указать конкретное слово, которое после нахождения должно быть возвращено как есть. Например, из моего примера выше формула должна возвращать
Text Text 50
иrandom 2020 text
как только найдено. Так что это все равно, что использовать целое слово в качестве разделителя, если это имеет смысл.3. Эта формула
=ARRAYFORMULA(IFERROR({REGEXEXTRACT(A1:A,"AC Text 1921"),REGEXEXTRACT(A1:A,"B93 Random"),REGEXEXTRACT(A1:A,"Other 1345 text..")}))
, похоже, работает, за исключением того, что она помещает результаты в последующие ячейки вместо ячейки, в которой есть формула. Как это преодолеть?
Ответ №1:
Если вы вводите искомые тексты в отдельный столбец (скажем, в E1:E3
), вы можете использовать эту формулу:
=IFERROR(ArrayFormula(REGEXEXTRACT(A:A,JOIN("|",E1:E3))),"")
Если вам нужен жесткий код, просто используйте:
=IFERROR(ArrayFormula(REGEXEXTRACT(A:A,"AC Reggiana 1919|B93 Copenhagen|Etar 1924 Veliko T..")),"")