Я хочу импортировать диапазон на основе наличия тегов в столбце "" TAG "" листа 1.
Я хотел бы использовать REGEX
в качестве условного оператора (например: "tag-1" или "" tag-2 "" и "" tag-5 "") для проверки, если один из тегов присутствует в столбце, тогда фильтруйте соответствующую строку.
Я пробовал все SEARCH
FILTER
AND
... с любым успехом.
=FILTER(dataRange, REGEXMATCH(TagRange, "Tag1"), REGEXMATCH(TagRange, "Tag2"))
возвращает обе строки с Tag1
и Tag2
когда я хочу, чтобы он вел себя как оператор AND
.
=FILTER(dataRange, AND(REGEXMATCH(TagRange, "Tag1"), REGEXMATCH(TagRange, "Tag2")))
для этого выглядит, что формула AND()
возвращает только одно значение вместо взаимных значений TRUE
/FALSE
. Поэтому я получаю сообщение об ошибке.
Google использует RE2, поэтому выражение ?=
Не работает
Просто используйте пользовательскую формулу. Таким образом, вы можете использовать версию JavaScript Javascript и использовать выражение ?=
.
Вот формула:
function myCustom(dataRange, rgxA) {
rgxA = new RegExp(rgxA, "gi");
for (var i = 0; i < dataRange.length; i++)
dataRange[i][0] = "" + (!(dataRange[i][0].match(rgxA) == null));
return (dataRange);
}
Таким образом вы вернете true
или false
на основе вашего Regex. Затем вы можете ввести регулярное выражение
((?=.*tag-1)(?=((.*tag-5)|(.*tag-2))) // tag-1 and (tag-5 or tag-2) in case insensitive