Как заставить эту формулу работать для диапазона

#google-sheets #google-sheets-formula

#google-таблицы #google-таблицы-формула #google-sheets-formula

Вопрос:

Я изо всех сил пытаюсь применить свою формулу для диапазона.

вот что у меня естьвведите описание изображения здесь

И вот что мне нужно введите описание изображения здесь

Мне удалось воспроизвести ту же схему с одной строкой : введите описание изображения здесь

с помощью этой формулы : ={transpose(split(rept(A2amp;"|",9),"|")),transpose(split(rept(B2amp;"|",9),"|")),transpose({C1:K1}),transpose({C2:K2}),transpose(split(rept(U2amp;"|",9),"|")),transpose(split(rept(V2amp;"|",9),"|"))}

но для всего диапазона A2: V93 я пробую это, но (и я опустил заголовки C1: K1) у меня ошибка (результат не был автоматически расширен, пожалуйста, вставьте больше столбцов) : =arrayformula({transpose(split(rept(A2:A93amp;"|",9),"|")),transpose(split(rept(B2:B93amp;"|",9),"|")),transpose({C2:K93}),transpose(split(rept(U2:U93amp;"|",9),"|")),transpose(split(rept(V2:93amp;"|",9),"|"))})

и последний вопрос, как это сделать.

введите описание изображения здесь

Я попробовал с этой формулой. но если я добавлю transpose , он перенесет все столбцы в строки, и это не то, почему я хочу =arrayformula(split({{rept(A2:A93amp;"|",3)}},"|"))

Большое вам спасибо

РЕДАКТИРОВАТЬ : ссылка => листы

Комментарии:

1. Пожалуйста, поделитесь копией вашего листа с примерами данных, чтобы другим было проще помочь вам в этом.

2. спасибо за ваш ответ, готово, спасибо

3. если вы сделаете ссылку доступной для редактирования, другим пользователям будет проще тестировать и демонстрировать решения

4. ой, поехали 🙂

Ответ №1:

Я думаю, что эта формула «unpivoting» с Flatten должна сработать для вас.

 =ARRAYFORMULA(QUERY(SUBSTITUTE(SPLIT(FLATTEN(MK.Clean.Data!A2:Aamp;"|"amp;MK.Clean.Data!B2:Bamp;"#|"amp;TO_TEXT(MK.Clean.Data!U2:U)amp;"#|"amp;MK.Clean.Data!C1:T1amp;"|"amp;MK.Clean.Data!V2:Vamp;"|"amp;MK.Clean.Data!C2:T),"|",0,0),"#",""),"where Col6<>'' order by Col1",0))
  

Я должен упомянуть, что FLATTEN() — это недокументированная функция, которую я обнаружил совсем недавно. Я полагаю, что это предназначено для того, чтобы оставаться «скрытым» в серверной части программирования sheets, но если то, что я сделал, — это то, что вам нужно, то на самом деле нет более эффективного способа сделать это.

Комментарии:

1. Аккуратно! Вот руководство по использованию FLATTEN() : infoinspired.com/google-docs/spreadsheet /…

2. @Calculuswhiz Я знаю Prashanth. Он довольно хорош в таблицах, если бы он проделал хорошую работу на своем сайте, объясняя, как работает flatten. Но я думаю, важно, чтобы люди понимали, что функция здесь не надолго. Я недавно говорил об этом с инженерами Google, и ее можно было бы удалить из sheets в любой момент.