Как преобразовать матрицу данных (х и нули) в реляционные строки в Google Sheets? - PullRequest
1 голос
/ 15 января 2020

Я столкнулся с проблемой, когда мне нужно преобразовать матрицу данных (с X и пустыми ячейками) в какой-то список; Я уже видел подобные вопросы здесь, но я не смог применить его для моих данных для работы.

Вот моя матрица:

        | A | B | ... | N |
-------------------------------
  1     | x |   | ... | x |
  2     |   | x | ... |   |
  .       .   .   ...   .
  .       .   .   ...   .
  .       .   .   ...   .
  N     | x | x | ... |   |

Номер столбца и строки может меняются.

Я хочу, чтобы выходная таблица была такой:

| column1 |  column2 |
-------------------------------
    1           A 
    1           N 
    2           B 
    .           .
    .           .
    .           .
    N           A 
    N           B 

Я думаю, что это понятно :) Любая помощь будет оценена:)

Вот реальные данные, которые я использую: https://docs.google.com/spreadsheets/d/1SlYKMrZy5cyQ7sljTvmiwu6XkIDN_WILDhEM4cWyYnk/edit?usp=sharing

Ответы [ 2 ]

1 голос
/ 15 января 2020

попробовать:

=ARRAYFORMULA(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
 IF(Sheet1!B3:EM<>"", "♠"&Sheet1!A3:A&"♦"&Sheet1!B2:2&"♦", ))
 ,,999^99)),,999^99), "♠")), "♦"))

enter image description here

0 голосов
/ 16 января 2020

Похоже, у игрока 0 уже есть что-то работающее. Заголовок запроса smu sh действительно очень мощный. Вот еще один способ решить такие проблемы с VLOOKUP. В некотором смысле это сложнее, но немного меньше волхвов c:)

=ARRAYFORMULA(QUERY(VLOOKUP(SEQUENCE(COUNTA(Sheet1!A3:A)*COLUMNS(Sheet1!B2:2),1,0)/COLUMNS(Sheet1!B2:2)+3,{ROW(Sheet1!A3:A),Sheet1!A3:A,IF(OFFSET(Sheet1!B3,,,ROWS(Sheet1!A3:A),COLUMNS(Sheet1!B2:2))="x",Sheet1!B2:2,)},MOD(SEQUENCE(COUNTA(Sheet1!A3:A)*COLUMNS(Sheet1!B2:2),1,0),COLUMNS(Sheet1!B2:2))*{0,1}+{2,3}),"where Col2 is not null",0))

Я оставил его на вкладке на вашем листе под названием MK.Help

...