У меня есть ответ, который не требует кодирования.
- Я предполагаю, что вы хотите поместить объединенный (объединенный) список в столбец
D
того же листа.
Если вы хотите это в другом месте, это тривиальное изменение.
- Мое решение требует двух «вспомогательных столбцов»; например, столбцы
E
и F
на одном листе.
Если вы хотите их в другом месте, это тривиальное изменение.
- Я предполагаю, что вы не будете помещать пробелы в первые три столбца (то есть в данные, перед последним значением), и что вы хотите, чтобы эти столбцы просто объединялись, а не сортировались или дедуплировались.
Если я неправильно понимаю, это серьезное изменение.
- Я предполагаю, что каждый столбец имеет хотя бы одно значение; то есть, что
A1
, B1
и C1
являются пустыми.
Если это предположение неверно, это решение (вероятно) можно адаптировать для этого.
Решение:
- Введите
=IF(E1<0, "", OFFSET($A$1, F1, E1))
в ячейку D1
.
- Перетащите / заполните ячейку
D1
вниз в D2
.
- Введите
0
в ячейки E1
и F1
.
- Введите
=IF(E1<0, E1, IF(OFFSET($A$1, F1+1, E1)<>"", E1, IF(E1<2, E1+1, -1)))
в ячейку E2
.
- Введите
=IF(E1<0, 0, IF(OFFSET($A$1, F1+1, E1)<>"", F1+1, 0))
в ячейку F2
.
- Выберите ячейки
D2:F2
и перетащите / заполните, насколько вы ожидаете, комбинированный список.
(Конечно, вы всегда можете продлить его позже.)
Столбцы E
и F
содержат столбец (на основе 0) и номер строки значения в столбце D
Например, 0,0
- это A1
, 0,2
- это A3
, 1,3
- это B4
и т.д. Отрицательное значение в столбце E
указывает, что вы находитесь за пределами конца данных.
Формула в столбце D
оценивается как пустая, если значение E
отрицательное; в противном случае он использует функцию OFFSET()
для получения значения, проиндексированного числами E
и F
Формулы в столбцах E
и F
проверяют, является ли предыдущее значение E
отрицательным, и, если это так, задайте для следующей строки значение -1,0
поэтому, как только вы достигнете конца списка, вы пройдете его и ты не начинаешь завязывать себя в узлы.
В противном случае, если в текущем столбце есть следующее значение, мы переходим к этому значению (E1,F1+1
).
В противном случае мы переходим к началу следующего столбца - за исключением того, что если текущий столбец № 2 (C
), мы переходим к столбцу № -1, потому что мы в конце.
Теперь вы можете добавлять и удалять значения в столбцах A
, B
и C
, и список в столбце D
будет обновляться автоматически.
Как только вы это заработаете, вы можете скрыть вспомогательные столбцы.