Создать картезианское произведение из двух наборов данных в разлинованном диапазоне

Создать картезианское произведение из двух наборов данных в разлинованном диапазоне
Создать картезианское произведение из двух наборов данных в разлинованном диапазоне

Let и CHOOSE мы можем объединить все ваши шаги в одну формулу для вывода двух столбцов:

=LET(rng,Table1[Process],
    strt,A2,
    end,B2,
    unq,UNIQUE(rng),
    dt,SEQUENCE(end-strt+1,,strt),
    cntP,COUNTA(unq),
    cntD,COUNT(dt),
    lstP,INDEX(unq,INT(SEQUENCE(cntP*cntD,,1,1/cntD))),
    lstD,INDEX(dt,MOD(SEQUENCE(cntP*cntD,,0),cntD)+1),
    CHOOSE({1,2},lstP,lstD))

В принципе, это соответствует вашим шагам.

  1. Мы получаем уникальные данные из таблицы.
  2. Мы получаем диапазон дат с помощью Sequence.
  3. Мы подсчитываем оба списка и сохраняем их.
  4. INT() мы получаем массив чисел, которые представляют собой количество дат, повторенное количество раз, уникальных для того, чтобы числа были отсортированы. Это передается в индекс
  5. Затем то же самое с датами, но числа последовательные.
  6. Затем с помощью CHOOSE мы ставим их рядом, чтобы они переливались.


NevaDev, 28 января 2023 г., 05:14