В Excel, как можно объединить, свернуть, сжать или удалить пустые ячейки из массива с дублирующимися заголовками в строках и столбцах?
+-----------+---------+------+---------+-------+---------+
| | 1998 | 2001 | 2004 | 2004 | 2010 |
+-----------+---------+------+---------+-------+---------+
| Porcupine | 123,000 | | | | |
| Porcupine | | | 125,000 | | |
| Porcupine | | | | | 197,000 |
| Quark | 3,750 | | | | |
| Quark | | | 3,750 | | |
| Sloth | | | | 1,400 | |
| Sloth | | | | | 1,500 |
+-----------+---------+------+---------+-------+---------+
Желаемый результат:
+-----------+---------+---------+---------+
| | 1998 | 2004 | 2010 |
+-----------+---------+---------+---------+
| Porcupine | 123,000 | 125,000 | 197,000 |
| Quark | 3,750 | 3,750 | |
| Sloth | | 1,400 | 1,500 |
+-----------+---------+---------+---------+
источник
Я могу думать только о VBA - не думайте, что промежуточные итоги будут работать очень хорошо.
Предполагая, что ваши данные находятся на листе 1, и что у них есть заголовки в строке 1 и столбце A, и нет общих строк или чего-то в этом роде. Также предположим, что sheet2 пуст (так как именно здесь я буду публиковать данные)
Затем вы можете повернуть результирующие данные, которые находятся на Листе 2 (сначала убедитесь, что у вас есть имена столбцов в строке 1, иначе они не будут работать).
Обратите внимание, что вы можете изменить Sheet1.UsedRange.rows.count и Sheet1.UsedRange.Columns.Count, чтобы они просто соответствовали количеству строк / столбцов, которые вы хотите перебрать.
источник