Кілька стовпців в один стовпчик без пробілів


0

Я використовую Microsoft Excel 2010. У мене є кілька стовпців з даними в них, а також деякі порожні комірки. Я використовую цю формулу:

= INDEX ($ A $ 101: $ F $ 200; MOD (ROW () - ROW ($ A $ 201) -1; ROWS ($ A $ 101: $ F $ 200)) + 1; INT ((ROW () - ROW ($ $ 201) -1) / ROWS ($ A $ 101: $ F $ 200)) + 1)

щоб об'єднати їх в одну довгу колонку. Однак він додає туди порожні клітини. Чи можна цю формулу змінити, щоб залишити ці порожні клітини та просто об'єднати клітини з даними, що містяться в них?

Приклад зображення:

приклад


Ви можете змінити формулу і зробити її набагато складнішою, або ви можете виконати простий двоступеневий процес. Зробіть ваше поточне злиття. Потім увімкніть фільтр і прихойте порожні рядки. Скопіюйте і вставте результат.
fixer1234

Якщо я можу, я хотів би зробити це автоматичним, тобто тоді мені потрібно було б скласти більш складну формулу. Хто-небудь готовий допомогти мені в цьому?
Томаш Перлекі

Відповіді:


0

Після багатьох проблем я знайшов щось, що працює, хоча він використовує дві робочі колонки (які, очевидно, будуть приховані до того, як аркуш буде використаний).

Я тестував програму Excel 2007, яка показує 0замість порожньої комірки, коли повертає порожню клітинку index()або indirect()повертає її: я міг би їх видалити за умовним форматуванням, але я залишив їх, щоб не затемнити, як формули працюють: -

Видаліть порожні комірки

Я використовував ваші тестові дані, тому формула, скопійована з D5якої:

=INDEX($A$5:$B$8,MOD(ROW()-ROW($A$5),ROWS($A$5:$B$8))+1,INT((ROW()-ROW($A$5))/ROWS($A$5:$B$8))+1)

Стовпець Dтепер використовується як робочий стовпчик, а інший робочий стовпець Fстворений із F5вмістом:

=MATCH("*",$D$5:$D$12,0)+ROW()-1

і скопійовано з F6:

=MATCH("*",INDIRECT(ADDRESS(F5+1,4,1)&":$D$12"),0)+F5

Тут важливі моменти:

  • Підстановочні картки можна використовувати, коли третій параметр MATCH()дорівнює нулю (не упорядкований).
  • "*"відповідає нічого, але НЕ0 повертається INDEX()на вільну позицію.

Нарешті, H5скопійовано:

=IFERROR(INDIRECT("$D"&F5),"")

Тут IFERROR()використовується для вибору #N/Aзаписів у стовпці Fпісля останнього знайденого запису.

Приховавши робочі стовпці, ви отримаєте те, що хотіли: -

Приховані робочі стовпці

Зауважте, що для запобігання переривання послідовності живих стовпців робочі стовпці можуть знаходитися поза зоною основного аркуша (наприклад, Yта Z) або на окремому аркуші, хоча останній ще більше ускладнить формули з посиланнями на аркуші.

Крім того, можливо використовувати лише один робочий стовпчик, але формули будуть значно збільшувати складність, що робить підтримку дуже складною.

Зауважте також, що ваші формули можна вважати зайвими складними, наприклад, ROW($A$201)це завжди 201 та ROWS($A$101:$F$200)завжди 100; в обох випадках це тому, що використовується абсолютна адресація - ROW()і ROWS()стає корисною при копіюванні комірок, що використовують відносну адресацію.


Дякую, ваше рішення працює як шарм, і це саме те, що я хотів. Додатковий стовпчик роботи мене не турбує.
Томаш Перлекі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.