У меня есть два листа, sheet1 и sheet2. Столбец E листа 2 содержит количество, а столбец K содержит текстовую строку (т. Е. Ключ). Несколько строк в sheet2 содержат одну и ту же текстовую строку с разным количеством.
В столбце B sheet1 у меня есть список текстовых строк. Для каждой текстовой строки я хочу запросить sheet2 и суммировать все количества в столбце E, где значение в столбце K соответствует текстовой строке.
В настоящее время мне нужно x запросов, где x - это числотекстовые строки в столбце В листа 1.
Каждый текущий запрос в листе 1 выглядит следующим образом:
Запрос в ячейке А1 листа1 с использованием текстовой строки в В1 листа1
=SUM(
QUERY(
'sheet2'!$A$2:INDIRECT(CONCATENATE("'sheet2'!O",'sheet2'!P1)), "select E where K="""&B1&""""
))
Запрос в A2 с использованием текстовой строки в B2 листа1
=SUM(
QUERY(
'sheet2'!$A$2:INDIRECT(CONCATENATE("'sheet2'!O",'sheet2'!P1)), "select E where K="""&B2&""""
))
и т. Д. *
Ячейка P1 листа2 содержит число ненулевых строк в листе2
Это хорошо работает, но проблема в том, что sheet2 содержит 200 000 строк. У меня есть около 100 текстовых строк для поиска, поэтому в настоящее время я использую 100 запросов, каждый из которых просматривает 200K строк x 15 столбцов = 3 миллиона ячеек
Понятно, что обновление листа занимает много временивсе эти запросы повторяются при обновлении sheet2.
Можно ли объединить все эти запросы в один? Другими словами, скажите формулу: «Я хочу, чтобы вы выполнили запрос суммы, используя каждую ячейку в диапазоне B1: B100 в качестве переменной x для K = x в запросе, и поместите результаты в ячейки A1: A100 соответственно»?