Если значение между столбцами начинается с ОДНОЙ буквы, за которой следует несколько цифр, не более букв, то замените его определенным значением

#arrays #regex #google-sheets #google-sheets-formula

Вопрос:

Полное значение и значения, которые я хочу заменить, не являются фиксированными, они могут изменяться, поэтому я не могу использовать SUBSTITUTE() функцию в одиночку

Значения, которые у меня есть в моем Column A шаблоне, имеют этот шаблон:

 https://int.testpage.com/national/france/ligue-2/@@@@/regular-season/r6326442/
https://int.testpage.com/international/world/olympics/2020-tokyo/s172221/final-stages/
https://int.testpage.com/national/denmark/1st-division/@@@@/regular-season/s63932424/
https://int.testpage.com/international/world/olympics/2020-tokyo/g1722251/quarters-stages/
 

Я хотел бы заменить этот тип стоимости конкретными знаками доллара:

 r6326442 -> $$$
s172221 -> $$$
s63932424 -> $$$
g1722251 -> $$$
 

Результатом для значений, которые я привел в качестве примера, будут следующие:

 https://int.testpage.com/national/france/ligue-2/@@@@/regular-season/$$$/
https://int.testpage.com/international/world/olympics/2020-tokyo/$$$/final-stages/
https://int.testpage.com/national/denmark/1st-division/@@@@/regular-season/$$$/
https://int.testpage.com/international/world/olympics/2020-tokyo/$$$/quarters-stages/
 

Если бы значения были фиксированными, я мог бы использовать:

 =ARRAYFORMULA(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1:A,"r6326442","$$$"),"s172221","$$$"),"s63932424","$$$"),"g1722251","$$$"))
 

И добавляйте больше SUBSTITUTE по мере появления новых значений, но мне нужно автоматизировать это, потому что существует много значений, и они всегда меняются.

Есть ли какой-нибудь способ сделать это?

Примечание: Значение всегда начинается с одной буквы в начале и сопровождается только случайными числами.

Ответ №1:

пробовать:

 =INDEX(REGEXREPLACE(A1:A, "[a-z]d ", "$$$"))
 

введите описание изображения здесь

Комментарии:

1. Большое вам спасибо за вашу помощь, я хотел бы еще одну деталь…… Например, если значение /k2league-final/ также изменяется /amp;amp;amp;amp;amp;league-final/ , есть ли способ указать, чтобы оно менялось только в том случае, если есть 1 буква, а остальные просто цифры до следующего бара?

2. Извините за мой плохой английский, на самом деле это становится проблемой, потому что эти значения не следует изменять, только те, в которых одна буква, а остальные цифры до следующей / . Если вы хотите, я могу создать новый вопрос, подробно объясняющий это!

3. @BrondbyIF попробуй: =INDEX(REGEXREPLACE(A1:A, "([a-z]d{5,10})", "$$$$$"))

4. Большое спасибо, приятель!