Как извлечь список уникальных комбинаций из многострочного массива, где только каждые две последовательные строки являются основой для комбинаций? - PullRequest
1 голос
/ 11 апреля 2020

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

Example with desired result

Я нашел способ создания промежуточных таблиц: 1) Я использую JOIN для создания комбинаций между каждой строкой "city" и "zone". 2) Я переставляю результат в один столбец (как необходимо для следующей УНИКАЛЬНОЙ функции), вводя функцию TRANSPOSE в каждую 7-ю строку (потому что есть 7 столбцов). 3) Затем я использую UNIQUE и COUNTIF в третьей таблице для окончательного результата.

Ссылка на пример с данными и желаемым результатом на первом листе, а мое решение на втором листе: Файл Google Sheets

Поскольку мой последний лист будет довольно большим (~ 2000 строк, 40 столбцов, ~ 4000 уникальных комбинаций), моя главная проблема с моим собственным решением - это ручной шаг, чтобы переставить комбинации города / зоны в один столбец для подготовки к УНИКАЛЬНОЙ функции.

Есть ли способ достичь того же конечного результата без промежуточных шагов из моего решения?

1 Ответ

2 голосов
/ 12 апреля 2020

C11:

=ARRAYFORMULA(QUERY(TRANSPOSE(SPLIT(QUERY( TRANSPOSE( QUERY("☯"&QUERY(TO_TEXT(B1:H8),"skipping 2",0)&" "&QUERY(B2:H8,"skipping 2",0),,2^99)),,2^99),"☯"))," Select Col1, count(Col1) group by Col1",0))
  • Создайте два массива с пропуском запроса, один из которых содержит цитаты, а другой - зоны

  • СОЕДИНИТЕ эти массивы с разделитель, использующий заголовки запроса

  • SPLIT и TRANSPOSE для создания одного столбца

  • QUERY для создания счетчика частоты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...