вытащить адрес динамического диапазона ячеек из ячейки на другом листе, созданном по формуле, и использовать его в другой формуле - PullRequest
0 голосов
/ 06 ноября 2019

Я использую эту формулу для динамического создания диапазона ячеек:

=concat("'180Day Runners'!A3:A" , COUNTA(A:A)) depending on the number of rows the countA finds the result is '180Day Runners'!A3:A389

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

=arrayformula(transpose(ARRAYFORMULA(SORT(TRANSPOSE(QUERY('Raw Run Data'!A:O,"SELECT F,G, max(J) WHERE G='5K' AND M = 7 AND ( F=1 "& concatenate(ARRAYFORMULA( " OR F=" & **'180Day Runners'!A4:A388** )) &" ) GROUP BY F, G pivot O ",1)),1,false))))

Я хотел бы заменить '180Day Runners'!A4:A388 результатом первой формулы, но я не могу получить правильный синтаксис. Я пробовал INDIRECT('180Day Runners'!B2), но это просто вызывает ошибку синтаксического анализа без объяснения причин.

Вот ссылка на рабочую копию

https://docs.google.com/spreadsheets/d/12SLmsLOSfCOHt9e1C065LPjrXUP3n1qIwsAZFzphN8U/edit?usp=sharing

Ячейка C3, гдеосновная формула находится на листе прогресса 5K

Ответы [ 2 ]

0 голосов
/ 07 ноября 2019

Я пробовал комбинацию синтаксических макетов и сумел заставить формулу работать. Окончательная формула выглядит следующим образом. В конце концов, вложенная косвенная функция сработала. = формула массива (транспонировать (ARRAYFORMULA (SORT (TRANSPOSE (QUERY) (необработанные данные прогона)! A: O, "ВЫБРАТЬ F, G, макс. (J)) ГДЕ G = '5K' И M = 7 AND (F = 1" &concatenate (ARRAYFORMULA ("OR F =" & косвенный ('180Day Runners'! B2) )) & ") GROUP BY F, G pivot O", 1)), 1, false))))я могу только предположить, что стал жертвой автозаполнения формулы, вставив слишком много скобок.

Большое спасибо тем, кто нашел время, чтобы посмотреть и дать мне руководство

0 голосов
/ 06 ноября 2019

try:

=ARRAYFORMULA(TRANSPOSE(SORT(TRANSPOSE(QUERY('Raw Run Data'!A:O,
 "select F,G,max(J) 
  where G ='5K' 
    and M = 7 
    and F matches '"&TEXTJOIN("|", 1, '180Day Runners'!A4:A)&"|1'  
  group by F,G pivot O", 1)), 1, 0)))

(не проверено, поскольку ваш лист не может быть скопирован)

или, возможно:

=ARRAYFORMULA(TRANSPOSE(SORT(TRANSPOSE(QUERY(TO_TEXT('Raw Run Data'!A:O),
 "select Col6,Col7,max(Col10) 
  where Col7 ='5K' 
    and Col13 = '7' 
    and Col6 matches '"&TEXTJOIN("|", 1, '180Day Runners'!A4:A)&"|1'  
  group by Col6,Col7 pivot Col15", 1)), 1, 0)))
...