Как создать массив, который повторяет функцию фильтра для каждого уникального значения в другом столбце в Google Sheets - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть лист, который выполняет автоматический анализ опросов, и я хотел бы, чтобы он анализировал подмножества данных на основе другой переменной. У меня есть две отдельные таблицы: в таблице 1 есть переменная, по которой я хочу сгруппировать анализ, а в таблице 2 есть все вопросы, которые я хочу проанализировать.

Я не могу понять, как написать синтаксис, который будет повторять вторую таблицу для каждого возможного значения таблицы 1.

Ввод:

Table 1    Table 2:
Col1       ColAP  ColAQ
A          21     43   
B          4      45
C          5      47

Желаемый вывод

Col1  ColAP  ColAQ
A     21     43   
A     4      45
A     5      47
B     21     43   
B     4      45
B     5      47
C     21     43   
C     4      45
C     5      47

...

Код, который я использую для получения массива таблицы 2, выглядит следующим образом:

=SORT(
{
ARRAYFORMULA(
  UNIQUE(
    REGEXREPLACE(
     FILTER(
      {
       Highlights!$AP$4:$AP,
       ARRAYFORMULA(
        REGEXREPLACE(Highlights!$AQ$4:$AQ," Total$","")
       )
      , REGEXREPLACE(Highlights!$D$4:$D,"^[\S\s]*$","Index")
      }
    ,REGEXMATCH(Highlights!$D$4:$D,"^(.*)\:([Bb]efore|[Aa]fter).*")
    )
   ,"^(.*)\:([Bb]efore|[Aa]fter).*","$1")
  )
 )
;ARRAYFORMULA(UNIQUE(REGEXREPLACE(FILTER({Highlights!$AP$4:$AP,ARRAYFORMULA(REGEXREPLACE(Highlights!$AQ$4:$AQ," Total$","")),Highlights!$D$4:$D},REGEXMATCH(Highlights!$D$4:$D,"^(.*)\:([Bb]efore|[Aa]fter).*")),"^(.*)\:([Bb]efore|[Aa]fter).*","$1")))}
,2,True,1,True)

Я пытался использовать варианты =UNIQUE(Arrayformula({Col1},{Table2})) для каждой уникальной комбинации значений в Col1 и таблице 2, но это не сработало из-за неравной длины диапазона. или, возможно, запрос, который сделает это. , ,

...