Как собрать данные и заголовки для непустых ячеек подряд в Sheets - PullRequest
0 голосов
/ 20 февраля 2020

Я не могу найти решение своей проблемы:

У меня есть лист с ~ 290 строками и ~ 80 столбцами. Первая строка и столбец являются фиксированными / header.

Я бы хотел собрать непустые значения и их заголовок в столбец B.

enter image description here

Я пытался искать решения, но я не так хорош в Excel, поэтому я не могу обернуться вокруг большинства советов, которые я нашел.

Ответы [ 3 ]

1 голос
/ 20 февраля 2020

В Google Sheets вы можете использовать формулу массива. Я получил это: enter image description here

Формула, которую я использовал:

=ArrayFormula(CONCATENATE(IF(--(C2:G2<>"")*COLUMN($C$1:$G$1)<>0;$C$1:$G$1&" "&C2:G2;"")))

Вот как это работает:

  1. (--(C2:G2<>"") вернет массив из 0 и 1, если ячейка пуста или нет
  2. COLUMN($C$1:$G$1) вернет массив номеров столбцов каждой ячейки
  3. (C2:G2<>"")*COLUMN($C$1:$G$1) мы умножим оба массива , поэтому мы получим массив номеров столбцов непустых ячеек и 0 пустых ячеек
  4. <>0;$C$1:$G$1&" "&C2:G2;"") Мы проверяем, равно ли каждое число в массиве, полученном на шаге 3, 0 или нет. Если это 0, он возвращает нулевое значение, если нет, он возвращает значение ячейки
  5. CONCATENATE будет объединять все значения из предыдущего массива (шаг 4), поэтому мы объединяем нулевые значения с реальными значениями не пустых ячеек.

Не уверен, что это замедлит загрузку листа, если у вас слишком много записей.

Надеюсь, это поможет

1 голос
/ 20 февраля 2020

использование:

=ARRAYFORMULA(REGEXREPLACE(TRIM(TRANSPOSE(QUERY(TRANSPOSE(
 IF(C2:G<>"", C1:G1&" "&C2:G&",", )),,99^99))), ",$", ))

0

0 голосов
/ 20 февраля 2020

Excel не тот же Google Sheets

=ARRAYFORMULA(TRIM(REGEXREPLACE(
  TRANSPOSE(
    QUERY(TRANSPOSE(IF(C2:F13<>"",C1:F1 & ", ","")),,99^99)
  ),
  "((\s+)|(,\s*$))",
  " "
)))

enter image description here

Мой образец

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...