Поверните значения столбца B, C и т. Д. На основе значений в столбце A - PullRequest
0 голосов
/ 20 апреля 2019

Я знаю, что в пандах Python вы можете сделать melt для поворота значений ячеек.

Здесь я хочу повернуть значения столбцов B и C на основе столбцов A:

enter image description here

Желаемый результат:

enter image description here

Мне нужно это обновить на лету, когда я изменяю другие значенияв противном случае в листе Google я экспортировал бы это в файл данных pandas и растопил оттуда.

Как я могу «растаять» в Google Sheets так, чтобы это вращение обновлялось на лету?Если нет встроенной функции, как бы я сделал это в JavaScript Google Sheets?


Примечание: Transpose (=TRANSPOSE(A2:C2)) кажется многообещающим, но это не приводит к повороту таблицы, этотолько перемещает значения ячеек в B и C под A:

enter image description here

Ответы [ 4 ]

1 голос
/ 20 апреля 2019
=ARRAYFORMULA(TRIM(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
 IF(B1:C<>"", "♠"&A1:A&"♦"&B1:C, )), , 999^99)), , 999^99), "♠")), "♦")))

0

1 голос
/ 20 апреля 2019

Пример на листах.

снимок экрана с примером

Строка 1 содержит «hello world», «stringA», «stringB» и т. Д. Встолбцы A, B, C и т. д.

Я начинаю вывод со строки 3. (Вывод в столбцы A, B, начиная со строки 3).

Вы можете использовать транспонирование ввторой столбец, например, поместите вашу транспонирование в B3 следующим образом:

=TRANSPOSE(B1:1)

И тогда ваше статическое значение для столбца A может быть достигнуто с помощью A3:

=ARRAYFORMULA(if(NOT(ISBLANK(B3:B)),$A$1,""))

, который говоритследите за столбцом B, начиная со строки 3, и добавьте статическое значение из A1, если в столбце B что-то есть.

Это динамически увеличивает вертикальный список при добавлении значений в строке 1 и статическийзначение следует за значением A1.

0 голосов
/ 20 апреля 2019
={{A1:A2,B1:B2};{A1:A2,C1:C2};{A1:A2,D1:D2}}

Добавьте столько столбцов в этом массиве. Я предположил, что данные имеют 4 столбца, причем столбец A является ведущим столбцом.

снимок данных и решения

0 голосов
/ 20 апреля 2019

Вы можете использовать типичное комбинированное объединение

=ARRAYFORMULA(SPLIT(A2&"?"&TRANSPOSE(B2:C2),"?"))
...