У меня есть следующие минимальные примерные данные (на самом деле 100 групп) в диапазоне A1:P9
(те же данные в диапазоне A14:A22)
:
A1:AR9
:A14:AQ22
:Мне нужен вывод, как показано в диапазоне Q1:AR3
или в диапазоне Q14:AQ16
.
По сути, для каждой группы значений с разделителями/между ними в столбце A мне потребуется:
:
, а каждое подсодержимое столбцов от C до P также было бы разделено |
(как показано на снимке экрана Q1:AR3
или Q14:AR16
).(Или, если это более осуществимо, как вариант, проще прочитать 2-ю модель, как в A14:AQ22
).
Мне очень трудно составить формулу, чтобы прийти к ожидаемому результату.
Все, о чем я мог думать, было:
TRANSPOSE
, чтобы получить диапазон групп,(очень запутанный, но я не мог найти лучшего способа).
Чтобы добраться до этого входа:
=TRANSPOSE(B1:B3)
=TRANSPOSE(B4:B5)
=TRANSPOSE(B7:B9)
Это уже был очень ручной и подверженный ошибкам процесс, и все же я не мог успешно придумать, как сделать оставшееся содержимое, соединяющее столбцы C и P в формуле.
Я протестировал следующий подход, но он не работает, и было бы очень утомительно исправить его и реализовать на больших наборах данных:
=TRANSPOSE(B1:B3)&": "&JOIN( " | " , FILTER(C1:P1, NOT(C2:P2 = "") ))&JOIN( " | " , FILTER(C2:P2, NOT(C2:P2 = "") ))&JOIN( " | " , FILTER(C43:P3, NOT(C3:P3 = "") ))
=TRANSPOSE(B4:B5)&": "&JOIN( " | " , FILTER(C4:P4, NOT(C4:P4 = "") ))&JOIN( " | " , FILTER(C5:P5, NOT(C5:P5 = "") ))
=TRANSPOSE(B6:B9)&": "&JOIN( " | " , FILTER(C6:P6, NOT(C6:P6 = "") ))&JOIN( " | " , FILTER(C7:P7, NOT(C7:P7 = "") ))&JOIN( " | " , FILTER(C8:P8, NOT(C8:P8 = "") ))&JOIN( " | " , FILTER(C8:P8, NOT(C9:P9 = "") ))
Какой лучший подход в пользу ожидаемого результата? Предпочтительно с помощью формулы или, если это невозможно, с помощью скрипта.
Любая помощь приветствуется.
можете поделиться образцом листа?
Конечно. Вот образец листа: docs.google.com/spreadsheets/d/…
Извините, ребята, за 1-ю таблицу в посте. Почему-то в конце смешно. Я оставлю это как есть, поскольку это второй раз, когда я пытаюсь исправить, если безрезультатно, и я думаю, что это должно быть достаточно ясно, чтобы понять. Если нет, пожалуйста, дайте мне знать. Спасибо!
Для примера 1 попробуйте следующее:
=LAMBDA(norm,MAP(UNIQUE(norm),LAMBDA(ζ,{TRANSPOSE(FILTER(B1:B9,norm=ζ)),":",SPLIT(BYROW(TRANSPOSE(FILTER(BYROW(C1:P9,LAMBDA(r,TEXTJOIN("ζ",1,r))),norm=ζ)),LAMBDA(rr,TEXTJOIN("γ|γ",1,rr))),"ζγ")})))(SORT(SCAN(,SORT(A1:A9,ROW(A1:A9),),LAMBDA(a,c,IF(c = "",a,c))),ROW(A1:A9),))
Комментарии перемещены в чат ; пожалуйста, не продолжайте обсуждение здесь. Прежде чем публиковать комментарий под этим, пожалуйста, ознакомьтесь с целями комментариев . Комментарии, которые не требуют разъяснений или предложений по улучшению, обычно относятся к ответу , к Meta Stack Overflow или в чату переполнения стека. Комментарии, продолжающие обсуждение, могут быть удалены.
Извините, опечатки в таблице и на картинке. Только что исправил.