Массивформула Google Sheets для запроса

#google-sheets #google-sheets-formula #array-formulas #google-sheets-query #gs-vlookup

#google-sheets #google-sheets-формула #массив-формулы #google-sheets-запрос #gs-vlookup

Вопрос:

Изначально у меня была такая формула:

 =QUERY('Sheet1'!$C$6:$I, "Select F where D contains '"amp;$B86amp;"'")
  

Это применяется к каждой ячейке от $ B86 до $ B145. Пользователи sheet случайно удаляют формулу, и добавление защиты не является вариантом. Итак, я подумываю о добавлении формулы в заголовок только с использованием arrayformula. Однако arrayformula нельзя использовать для запроса.

ВОПРОС 1: Есть ли какой-либо другой способ получить тот же результат, когда формула содержится только в заголовке?

 ={"Messages Sent";ARRAYFORMULA(QUERY('Sheet1'!$C$6:$I, "Select F where D contains '"amp;B86:B145amp;"'"))}
  

Это своего рода то, чего я хочу достичь. Однако это не заполняет данные с B87 по B145. Я получаю только заголовок и результат для 1 строки ниже заголовка.

Объяснение

Это показывает заголовок ={"Messages Sent";

Предполагается, что это arrayformula ARRAYFORMULA(QUERY('Sheet1'!$C$6:$I, "Select F where D contains '"amp;B86:B145amp;"'"))}

Это данные с другого листа 'Sheet1'!$C$6:$I

Это те же данные из текущего листа для поиска F на листе 1 '"amp;B86:B145amp;"'

ВОПРОС 2: КАК я МОГУ ПОЛУЧИТЬ ОТВЕТ ИЗ ЗАПРОСА, АВТОМАТИЧЕСКИ ЗАДАННОГО В ЧИСЛОВОМ ФОРМАТЕ, ЧТОБЫ я МОГ НАПРЯМУЮ ДОБАВЛЯТЬ ИХ ВМЕСТО ФОРМАТИРОВАНИЯ ВРУЧНУЮ КАК NUMBER?

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

1. поделитесь копией своего листа

Ответ №1:

попробуйте, может быть:

 ={"Messages Sent"; ARRAYFORMULA(IFNA(VLOOKUP(B86:B145, 
 {REGEXEXTRACT(""amp;Sheet1!D6:D, TEXTJOIN("|", 1, B86:B145)), Sheet1!F6:F*1}, 2, 0)))}