Декартово произведение в Google Таблицах с транспонированными столбцами - PullRequest
3 голосов
/ 17 июня 2020

Есть ли рекомендуемые способы преобразования таблицы из A2:F6 в H2:K10?

Спасибо.

enter image description here

Вот образец Google Sheet https://docs.google.com/spreadsheets/d/1QOZVMIRvM_9lhvAflhQtA9H6KOpfHycPo5qgF1y-GzA/edit?usp=sharing

Ответы [ 2 ]

2 голосов
/ 17 июня 2020

Используйте следующую формулу запроса:

=QUERY(QUERY({A:D;A2:C,E2:E;A2:C,F2:F},"where Col1 is not null order by Col1"), "where Col4 is not null")

enter image description here

Используемые функции:

2 голосов
/ 17 июня 2020

Существует относительно простой способ, чем использовать FLATTEN:

={
  ARRAYFORMULA(A1:C1), "Product";
  ARRAYFORMULA(
    VLOOKUP(
      FILTER(
        FLATTEN(ROW(D2:F) + 0 * ISBLANK(D2:F)),
        FLATTEN(D2:F <> "")
      ),
      FILTER(
        {ROW(A2:A), A2:C},
        A2:A <> ""
      ),
      {2, 3, 4},
      0
    )
  ),
  FILTER(
    FLATTEN(D2:F),
    FLATTEN(D2:F <> "")
  )
}

enter image description here

Не знаю, почему ARRAYFORMULA(ROW(D2:F)) дает построчные номера строк, а не двумерную матрицу с номерами строк. Мог бы удалить 0 * ISBLANK(D2:F) иначе ...

...