Я пытаюсь использовать оператор ИЛИ в следующем запросе.
По идее в ячейке будет отображаться пробег от ветки. Пользователь может выбрать ветку либо на C12, либо на E12, и в ячейке отобразится пробег из таблицы. Моим следующим шагом было бы сделать оператор if, но мне интересно, возможно ли заставить его работать так
=iferror(query(BranchesHrsKms, "Select E where C matches'"&C12&"' or C matches'"&E12&"'limit 1",0),"")`
Что делает текущий код: в основном просто запускает эту часть
C matches'"&E12&"'limit 1",0),"")
Но только когда в С12 что-то есть.
Любое руководство приветствуется
Обновлять: Это могу работает с If и ISBLANK
=IF(ISBLANK(C16)=FALSE, iferror(query(BranchesHrsKms,
"Select E where C matches'"&C16&"' limit 1",0),""),
iferror(query(BranchesHrsKms, "Select E where C matches'"&E16&"' limit 1",0),""))
Копия листа для игры: https://docs.google.com/spreadsheets/d/1fn5xzWi47xcgnQiDk5v_t1UDtIF6gHKGB4WoblbT3-Y/edit#gid=686684908
Не хватает места перед limit
=iferror(query(BranchesHrsKms, "Select E where C contains '"&C12&"' or C contains '"&E12&"' limit 1",0),"")
пытаться:
=IFERROR(QUERY(BranchesHrsKms,
"select E
where C matches '.*"&TEXTJOIN(".*|.*", 1, C12, E12)&".*'
limit 1", ))
=INDEX(IFERROR(1/(1/(
IFNA(VLOOKUP(C10:C23, BranchCodes!C:E, 3, ))+
IFNA(VLOOKUP(E10:E23, BranchCodes!C:E, 3, ))))))
Я никогда раньше не использовал TEXTJOIN таким образом, но он запрашивает пробег для ветки STAND, когда выбранная ветка была TA. STAND появляется первым в таблице. Это больше похоже на contains
, где TA появляется первым в STAND. На данный момент лучшим рабочим решением является =IF(ISBLANK(C16)=FALSE, iferror(query(BranchesHrsKms, "Select E where C matches'"&C16&"' limit 1",0),""), iferror(query(BranchesHrsKms, "Select E where C matches'"&E16&"' limit 1",0),""))
@MatthewRowlands, можете ли вы поделиться копией своего листа?
Готово :) Теперь я разрешил добавить пробег. довольно неуклюжий код, но, кажется, работает нормально.
Ответ @MatthewRowlands обновлен, см. розовую ячейку: docs.google.com/spreadsheets/d/…
Гений! Мне явно есть чему поучиться. Я сохраню лист для других, чтобы просмотреть процесс. Спасибо
Обратите внимание, что в Excel нет функции
QUERY
, поэтому я удалил этот тег.