Формула в эксель как схлопнуть значения в двух строках по одному id

Обновлено: 07.07.2024

Если список значений содержит пропуски (пустые ячейки), то это может существенно затруднить его дальнейший анализ. С помощью формул уберем пустые ячейки из колонки с данными. Также напишем формулу, чтобы удалить нули из списка значений. В конце статьи научимся удалять вообще любое заданное значение из списка: символ, число, текстовую строку.

Пусть имеется список с пустыми ячейками (столбец А ).


Задача

Убрать пустые ячейки из списка, сформировав формулами список в соседнем столбце. То есть под словом "убрать" будем понимать не удаление значения из исходного списка, а формирование еще одного списка, но уже без лишних символов. Чтобы действительно убрать значения из списка нужно использовать макросы - программу на VBA.

Решение

Для избавления от пустых ячеек запишем в ячейке B2 формулу массива и скопируем ее вниз (см. файл примера): =ЕСЛИОШИБКА(ДВССЫЛ("A"&НАИМЕНЬШИЙ(ЕСЛИ(ЕПУСТО($A$2:$A$14);"";СТРОКА($A$2:$A$14));СТРОКА(A1)));"")

Получим в соседнем столбце B список со значениями из исходого, но уже без пропусков. Формула работает одинакового и для текстовых значений и для чисел. Алгоритм работы формулы следующий:

  • ЕСЛИ(ЕПУСТО($A$2:$A$14);"";СТРОКА($A$2:$A$14)) – если ячейка не пуста, то эта часть формулы возвращает номер строки. То есть формируется массив номеров строк, НЕ содержащих пустоты На месте пустых ячеек в массиве будет символ "" (пустой текст), но можно его заменить в формуле на любую текстовую строку, например "ккк". Проверить результат можно выделив эту часть формулы и нажав клавишу F9 ;
  • Функция НАИМЕНЬШИЙ() сортирует массив строк по возрастанию. В сортированном списке сначала будут идти номера строк затем значения "", т.к. в EXCEL считается, что любое текстовое значение больше любого числа (значение пустой текст - текстовое значение);
  • Далее для функции ДВССЫЛ() формируются адреса ячеек с непустыми значениями. Например, ДВССЫЛ("A"&2) возвращает значение из ячейки А2 . Для пустых ячеек будет формироваться ошибочные адреса ячеек, состоящие только из символа А. Это вызовет ошибку после применения функции ДВССЫЛ();
  • Функция ЕСЛИОШИБКА() вместо ошибки будет возвращать "". Этот символ не отображается в ячейке и ячейка выглядит пустой.

На самом деле в соседнем столбце B список будет отличаться не только тем, что в нем значения будут идти подряд без пропусков. Если в исходном списке пустые ячейки действительно не содержали ничего, то в новом списке в пустых ячейках будут значения Пустой текст "". Хотя внешний вид пустых ячеек из обоих списков будет неотличим, но формулы увидят разницу. То есть, если Вы планируете делать дальнейшие манипуляции с новым списком, то имейте ввиду, что теперь пустые ячейки в конце списка теперь не совсем пусты - они содержат текстовое значение "". Подробнее про это специфическое значение читайте здесь .

Изменим немного формулу: =ЕСЛИОШИБКА(НАИМЕНЬШИЙ(ЕСЛИ( ЕПУСТО($A$2:$A$14);"";$A$2:$A$14);СТРОКА(A1));"")

Получим тот же список, но еще и сортированный по возрастанию (работает только для чисел).


Список также можно сформировать в столбце С другой формулой массива :

СписокСпропусками в формуле - это динамический диапазон , который образован формулой:

Длину списка с пропусками можно вычислить с помощью формулы:

СОВЕТ:

Для удаления и выделения пустых строк и ячеек традиционными средствами EXCEL, пользуйтесь идеями из статей Удаляем пустые строки в таблице и Выделение группы ячеек . О том, что EXCEL понимает под пустыми ячейками, читайте в статье Подсчет пустых ячеек .

Удаляем заданные символы из списка

Часто в списке присутствуют ненужные для дальнейшего анализа значения, например 0 (нуль).

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

Пусть исходный список находится в диапазоне A12:A24, а в ячейке B6 содержится значение которое нужно удалить из ячеек списка.

Единственным отличием является выражение $A$12:$A$24=$B$6, которое заменило формулу с ЕПУСТО(. )

Теперь если значение в исходном списке не равно искомому значению, то вместо него будет выведено значение "" (в конце списка).

В Excel , вы всегда можете столкнуться с этой проблемой, если у вас есть диапазон данных, содержащий несколько повторяющихся записей, и теперь вы хотите объединить повторяющиеся данные и суммировать соответствующие значения в другом столбце, как показано на следующих снимках экрана. Как бы вы могли решить эту проблему?

Объедините повторяющиеся строки и суммируйте значения с помощью функции консолидации

Консолидация - это полезный инструмент для нас, позволяющий объединить несколько листов или строк в Excel, поэтому с помощью этой функции мы также можем суммировать несколько строк на основе дубликатов. Пожалуйста, выполните следующие действия:

1. Щелкните ячейку, в которой вы хотите разместить результат на текущем листе.

2. Перейти к щелчку Данные > Консолидировать, см. снимок экрана:

док-комбайн-сумма3

3. В Консолидировать диалоговое окно:

  • (1.) Выберите Сумма от функция раскрывающийся список;
  • (2.) Щелкните кнопку, чтобы выбрать диапазон, который вы хотите объединить, а затем нажмите Добавить кнопка, чтобы добавить ссылку на Все ссылки список;
  • (3.) Проверить Верхний ряд и Левая колонка от Используйте ярлыки в вариант. Смотрите скриншот:

док-комбайн-сумма4

4. После завершения настройки нажмите OK, а дубликаты объединяются и суммируются. Смотрите скриншот:

док-комбайн-сумма6

Внимание: Если в диапазоне нет строки заголовка, снимите флажок Верхний ряд из Используйте ярлыки в опцию.

Объедините повторяющиеся строки и суммируйте / усредняйте соответствующие значения в другом столбце

Kutools for Excel's Продвинутые ряды комбайна помогает объединить несколько повторяющихся строк в одну запись на основе ключевого столбца, а также может применять некоторые вычисления, такие как сумма, среднее значение, количество и т. д., для других столбцов. Нажмите, чтобы загрузить Kutools for Excel!

Объедините повторяющиеся строки и суммируйте значения с кодом VBA

Следующий код VBA также может помочь вам объединить повторяющиеся строки на листе, но в то же время исходные данные будут уничтожены, вам необходимо сделать резервную копию копии данных.

1. Удерживайте ALT + F11 ключи, затем он открывает Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модульи вставьте следующий код в Окно модуля.

Код VBA: объедините повторяющиеся строки и просуммируйте значения

3, Затем нажмите F5 ключ для запуска этого кода, и вам нужно выбрать диапазон, который вы хотите объединить, во всплывающем окне подсказки. Смотрите скриншот:

док-комбайн-сумма7

4, Затем нажмите OK, повторяющиеся строки были объединены, а значения суммированы.

Внимание: Если вы хотите использовать этот код, вам лучше сделать копию файла, чтобы избежать разрушения данных, и этот код применяется только к двум столбцам.

Объедините повторяющиеся строки и суммируйте значения с помощью Kutools for Excel

Здесь я представляю удобный инструмент - Kutools for Excel для вас это Расширенные ряды комбинирования также может быстро решить эту проблему.

После установки Kutools for Excel, пожалуйста, сделайте следующее:

1. Выберите нужный вам диапазон и нажмите Kutools > Слияние и разделение > Расширенные ряды комбинирования. Смотрите скриншот:


2. В Расширенные ряды комбинирования диалог, проверьте У моих данных есть заголовки если в вашем диапазоне есть заголовки, выберите имя столбца, дубликаты которого вы хотите объединить, и щелкните Основной ключ, см. снимок экрана:

3. Затем выберите имя столбца, значения которого вы хотите суммировать, и нажмите Рассчитать > Сумма или другие расчеты по мере необходимости. Смотрите скриншот:

док-комбайн-сумма7

4. Нажмите Ok чтобы закрыть диалоговое окно, вы увидите, что дубликаты объединены, а соответствующие данные в другом столбце суммируются. Смотрите скриншоты:

док-комбайн-сумма1
-2
док-комбайн-сумма2

Объедините соответствующие строки на основе повторяющихся значений в другом столбце с помощью Kutools for Excel

Иногда вы хотите объединить строки на основе повторяющихся значений в другом столбце, Расширенные ряды комбинирования of Kutools for Excel также может оказать вам услугу, пожалуйста, сделайте следующее:

1. Выберите диапазон данных, который вы хотите использовать, а затем щелкните Kutools > Слияние и разделение > Расширенные ряды комбинирования для Расширенные ряды комбинирования диалоговое окно.

2. В Расширенные ряды комбинирования В диалоговом окне щелкните имя столбца, на основе которого вы хотите объединить другие данные, и щелкните Основной ключ, см. снимок экрана:

док-комбайн-сумма7

3. Затем щелкните имя другого столбца, данные которого вы хотите объединить, и щелкните Сочетать чтобы выбрать разделитель для разделения объединенных значений, см. снимок экрана:

док-комбайн-сумма7

4. Затем нажмите Ok, все значения в одной ячейке в столбце A были объединены вместе, см. скриншоты:

В рамках моей постоянной работы несколько лет назад одной из вещей, с которыми мне приходилось иметь дело, было объединение данных из разных рабочих тетрадей, которыми пользуются другие люди.

И одной из распространенных задач было объединить данные таким образом, чтобы не было повторяющихся записей.

Например, ниже представлен набор данных, содержащий несколько записей для одного и того же региона.


И конечным результатом должен быть консолидированный набор данных, в котором каждая страна представлена ​​только один раз.


В этом руководстве я покажу вам, как объединить повторяющиеся строки и суммировать значения для создания единого консолидированного набора данных.

Объединение и суммирование данных с помощью опции консолидации

Если все, что вам нужно сделать, это объединить данные и добавить все значения для повторяющихся записей, лучше всего использовать функцию консолидации в Excel.

Предположим, у вас есть набор данных, показанный ниже, в котором название страны повторяется несколько раз.


Хотя это уникальные записи, так как стоимость продаж различается, для целей отчетности вы можете удалить несколько экземпляров одной и той же страны и показать стоимость продаж как одну консолидированную сумму.

Ниже приведены шаги для этого:

Вышеупомянутые шаги объединят данные, удалив повторяющиеся записи и добавив значения для каждой страны.


В конечном результате вы получите уникальный список стран вместе со стоимостью продаж из исходного набора данных.

Я решил получить СУММУ значений из каждой записи. Вы также можете выбрать другие параметры, такие как «Счетчик» или «Среднее» или «Макс. / Мин.».

В этом примере я показал вам, как объединить данные в единый набор данных на листе. вы также можете использовать эту функцию для консолидации данных из нескольких листов в одной книге и даже из нескольких разных книг.

Объединение и суммирование данных с помощью сводных таблиц

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

Обратной стороной этого метода по сравнению с предыдущим является то, что этот метод требует больше кликов и на несколько секунд больше по сравнению с предыдущим.

Предположим, у вас есть набор данных, показанный ниже, в котором название страны повторяется несколько раз, и вы хотите объединить эти данные.


Ниже приведены шаги по созданию сводной таблицы:

Вышеупомянутые шаги вставят сводную таблицу в выбранную целевую ячейку.


Теперь с помощью сводной таблицы мы можем делать все, что угодно, включая консолидацию набора данных и удаление дубликатов.

Ниже приведены шаги для этого:

  • Щелкните в любом месте области сводной таблицы, и откроется панель сводной таблицы справа.
  • Перетащите поле Country в область Row.
  • Перетащите и поместите поле «Продажи» в область «Значения».


Вышеупомянутые шаги суммируют данные и дают вам сумму продаж по всем странам.


Если это все, что вам нужно, и вам не нужна сводная таблица, вы можете скопировать данные, вставить их как значения в другое место и удалить сводную таблицу.

Это также поможет вам уменьшить размер вашей книги Excel.

Итак, это два быстрых и простых метода, которые вы можете использовать для консолидации данных, где они объединяют повторяющиеся строки и суммируют все значения в этих записях.

Как сделать крутой снимок и что для этого нужно?

Наши советы помогут работать с обычными суммами значений в выбранном диапазоне ячеек или сложными вычислениями с десятками аргументов. Главное, что при большом количестве формул их будет легко расположить в нужных местах.

1 Простое протягивание формулы

Это самый простой и привычный для многих пользователей способ распространения формулы сразу на несколько ячеек строки или столбца. Он требует выполнения следующих действий:

  • В первую ячейку с одной из сторон (например, сверху) надо записать нужную формулу и нажать Enter.
  • После появления рассчитанного по формуле значения навести курсор в нижний правый угол ячейки. Подождать, пока толстый белый крестик не превратиться в тонкий черный.
  • Нажать на крестик и, удерживая его, протянуть формулу в нужном направлении. В указанном примере — вниз.







Аргументы в формуле будут изменяться соответственно новому расположению. И если в самой первой ячейке это были F7 и G7, в последней позиции столбца это будет уже F12 и G12. Соответственно, если начинать распространять формулы по строкам, изменяться будут не цифры, а буквы в обозначениях ячеек.

Способ отличается простотой и высокой скоростью. Но не всегда подходит для больших таблиц. Так, если в столбце несколько сотен или даже тысяч значений, формулу проще растягивать другими способами, чтобы сэкономить время. Один из них — автоматическое копирование, требующее всего лишь двойного клика кнопкой мыши.

2 Быстрое автозаполнение

Еще один способ в Excel протянуть формулу до конца столбца с более высокой по сравнению с первой методикой скоростью. Требует от пользователя применить такие действия:

  • Ввести в верхнюю ячейку формулу, в которой применяются аргументы из соседних столбцов. Нажать кнопку Enter.
  • Навести курсор на правый нижний угол, чтобы он приобрел форму черного крестика.
  • Кликнуть два раза по нижнему правому углу ячейки. Результатом станет автоматическое распространение формулы по столбцу с соответствующим изменением аргументов.







Стоит отметить, что автоматическое протягивание выполняется только до первой пустой ячейки. И если столбец был прерван, действия придется повторить для следующего диапазоне.

Еще одна особенность такого автоматического копирования формул — невозможность использования для строки. При попытке распространить значение ячейки не вниз, а в сторону, ничего не происходит. С другой стороны, длина строк обычно намного меньше по сравнению со столбцами, которые могут состоять из нескольких тысяч пунктов.

3 Протягивание без изменения ячеек в формуле

Еще один способ позволяет распространять формулы в Excel без изменения некоторых аргументов. Это может понадобиться в тех случаях, когда одно или несколько значений будут содержаться в одной и той же ячейке. Поможет в закреплении формулы специальная функция фиксации ссылок.

Для распределения без изменения адреса ячейки выполняются те же действия, что и при обычном протягивании или автоматическом копировании. Но при вводе формулы следует зафиксировать адреса, которые не будут меняться. Для этого используются символы доллара — $. Если в каждом новом пункте столбца при расчетах используется одна и та же ячейка, значки надо будет поставить и перед номером строки, и перед литерой, которая указывает на колонку. Как в примере: $G$6.


Ставить знак $ перед названием только строки или столбца при распределении функции не имеет смысла. Потому что, когда формула протягивается, в ней автоматически меняются только нужные части аргументов. Для столбцов это будут номера строк, для строк — названия колонок.

4 Простое копирование

Еще один способ представляет собой не совсем протягивание, а копирование. Но только более простое и позволяющее выделить конкретный диапазон, а не доверять такое выделение компьютеру. Процесс распределения требует выполнить следующие действия:

  • Записать в одну из крайних ячеек строки или столбца нужную формулу и нажать Enter.
  • Скопировать значение функции — с помощью контекстного меню, иконки на панели или комбинации клавиш Ctrl + C.
  • Установить курсор в противоположную часть столбца или строки.
  • Нажать на клавиши Ctrl + Shift + «Стрелка вверх». Результатом становится выделение нужного диапазона, даже если на этом участке столбца будет несколько сотен или тысяч пунктов.
  • Вставить формулу. Самый простой способ сделать это — нажать комбинацию Ctrl + V.









Результатом будет такое же распределение функции по столбцу, как и при использовании способа №2. Но в отличие от него здесь можно выделить только часть диапазона. Или, наоборот, продлить такое протягивание дальше даже при наличии пустых строк. Правда, во втором случае лишнее значение придется удалить вручную.

Эта небольшая хитрость подходит и для распределения вдоль строки. В этом случае вместо комбинации Ctrl + Shift + «Стрелка вверх» придется нажать Ctrl + Shift + «Стрелка влево» (или вправо, если копируемая формула находится в крайнем левом столбце).

5 Протягивание формул в таблице Excel

Распределять формулы можно и в том случае, если данные размещены не на практически бесконечном листе, а в границах таблицы.

Для преобразования в табличную форму достаточно выделить одну из ячеек и нажать комбинацию Ctrl + T, чтобы вызвать диалоговое окно и указать диапазон данных таблицы.
Перед тем, как протянуть формулу в Excel, достаточно всего лишь ввести нужную функцию в самой верхней строчке таблицы и нажать Enter. Способ работает только при отсутствии других значений в столбце с формулой.







Формула автоматически распределяется по колонке. Преимущества способа — скорость, сравнимая с применением макроса. Недостаток — работает он только при использовании табличной формы размещения данных в Excel и позволяет протянуть формулу сразу до конца таблицы, а не до нужной строки.

Читайте также: