Оглавление
Объединение дублирующихся строк в ваших электронных таблицах может превратиться в одну из самых сложных задач. Давайте посмотрим, чем могут помочь формулы Google, и познакомимся с одним умным дополнением, которое сделает всю работу за вас.
Функции для объединения ячеек с одинаковым значением в Google Sheets
Вы же не думали, что в Google Sheets нет функций для решения подобных задач? ;) Вот формулы, которые понадобятся вам для объединения строк и удаления дублирующихся ячеек в электронных таблицах.
CONCATENATE - функция и оператор Google Sheets для объединения записей
Первое, что приходит на ум, когда я думаю не просто об удалении дубликатов, а об объединении дублирующихся строк, это функция Google Sheets CONCATENATE и амперсанд (&) - специальный оператор конкатенации.
Предположим, у вас есть список фильмов для просмотра, и вы хотели бы сгруппировать их по жанрам:
- Объединять ячейки в Google Sheets можно только с пробелами между значениями:
=CONCATENATE(B2," ",C2," ",B8," ",C8)
=B2&" "&C2&" "&B8&" "&C8
- Или используйте пробелы с любыми другими знаками, чтобы объединить дублирующиеся строки вместе:
=CONCATENATE(A3,": ",B3," (",C3,"), ",B6," (",C6,") ")
=A3&": "&B3&" ("&C3&"), "&B6&" ("&C6&") "
После объединения строк можно избавиться от формул и оставить только текст на примере этого урока: Преобразование формул в значения в Google Sheets
Каким бы простым ни казался этот способ, он явно далек от идеала. Он требует, чтобы вы знали точные позиции дубликатов, и именно вы должны указать на них формуле. Итак, это может работать для небольших наборов данных, но что делать, когда они становятся больше?
Объедините ячейки, но сохраните данные с помощью UNIQUE + JOIN
Этот тандем формул находит дубликаты в Google Sheets (и объединяет ячейки с уникальными записями) за вас. Однако вы все равно остаетесь главным и должны показать формулам, где искать. Давайте посмотрим, как это работает на том же списке для просмотра.
- Я использую в Google Sheets UNIQUE в E2 для проверки жанров в столбце A:
=UNIQUE(A2:A)
Формула возвращает список всех жанров, независимо от того, повторяются они или нет в исходном списке. Другими словами, она удаляет дубликаты из столбца A.
Совет. UNIQUE чувствителен к регистру, поэтому обязательно приведите одинаковые записи к одному регистру текста. Этот урок поможет вам быстро сделать это в массовом порядке.
Совет. Если вы добавите больше значений в столбец A, формула автоматически расширит список уникальными записями.
- Затем я строю следующую формулу с помощью функции Google Sheets JOIN:
=JOIN(", ",FILTER(B:B,A:A=E2))
Как работают элементы этой формулы?
- FILTER проверяет столбец A на наличие всех экземпляров значения в E2. Найдя его, он извлекает соответствующие записи из столбца B.
- JOIN объединяет эти значения в одной ячейке через запятую.
Скопируйте формулу вниз, и вы получите все названия, отсортированные по жанрам.
Примечание. Если вам нужны также годы, вам придется создать формулу в соседнем столбце, поскольку JOIN работает с одним столбцом за раз:
=JOIN(", ",FILTER(C:C,A:A=E2))
Итак, этот вариант оснащает Google Sheets несколькими функциями для объединения нескольких строк в одну на основе дубликатов. И это происходит автоматически. Ну, почти. Я намерен придержать идеальное решение до самого конца статьи. Но не стесняйтесь перейти к нему прямо сейчас ;)
Функция QUERY для удаления дубликатов строк в Google Sheets
Есть еще одна функция, которая помогает работать с огромными таблицами - QUERY. Сначала она может показаться немного сложной, но как только вы научитесь ее использовать, она станет вашим верным спутником в электронных таблицах.
Вот сама функция QUERY:
=QUERY(data, query, [headers])Как это работает:
- данные (требуется) - диапазон вашей исходной таблицы.
- запрос (требуется) - набор команд для определения условий с целью получения конкретных данных.
Совет. Полный список всех команд вы можете получить здесь.
- заголовки (необязательно) - количество строк заголовка в вашей исходной таблице.
Проще говоря, Google Sheets QUERY возвращает некоторые наборы значений на основе заданных вами условий.
Пример 1
Я хочу получить только фильмы по комиксам, которые мне еще предстоит посмотреть:
=QUERY(A1:C, "select * where A="Comic Book"")
Формула обрабатывает всю мою исходную таблицу (A1:C) и возвращает все столбцы (select *) для фильмов по комиксам (где A="Comic Book").
Совет. Я не указываю последнюю строку моей таблицы (A1:C) намеренно - чтобы сохранить гибкость формулы и возвращать новые записи в случае добавления других строк в таблицу.
Как видите, он работает аналогично фильтру. Но на практике ваши данные могут быть гораздо больше - с числами, которые вам, возможно, придется вычислять.
Совет. Ознакомьтесь с другими способами поиска дубликатов в таблице Google Sheets в этой статье.
Пример 2
Предположим, я провожу небольшое исследование и слежу за кассовыми сборами за выходные для самых новых фильмов в кинотеатрах:
Я использую Google Sheets QUERY для удаления дубликатов и подсчета общей суммы заработанных денег за фильм за все уикенды. Я также располагаю их в алфавитном порядке по жанрам:
=QUERY(B1:D, "select B,C, SUM(D) group by B,C")
Примечание. Для группа по вы должны перечислить все столбцы после команды выберите иначе формула не будет работать.
Чтобы отсортировать записи по фильмам, я могу просто изменить порядок столбцов в поле группа по :
=QUERY(B1:D, "select B,C, SUM(D) group by C,B")
Пример 3
Предположим, вы успешно управляете книжным магазином и отслеживаете все книги, которые есть в наличии во всех ваших филиалах. Список достигает сотен книг:
- Из-за шумихи вокруг серии книг о Гарри Поттере вы решили проверить, сколько у вас осталось книг, написанных Дж. К. Роулинг:
=QUERY('Копия в наличии'!A1:D, "select A,B,C,D where A="Rowling"")
- Вы решаете пойти дальше и оставить только серию о Гарри Поттере, опустив другие сказки:
=QUERY('На складе'!A1:D, "select A,B,C,D where (A='Rowling' and C contains 'Harry Potter')")
- Используя функцию Google Sheets QUERY, вы также можете подсчитать все эти книги:
=QUERY('На складе'!A1:D, "select A,B, sum(D) where (A='Rowling' and C contains 'Harry Potter') group by A,B")
Думаю, теперь вы имеете представление о том, как функция QUERY "удаляет дубликаты" в Google Sheets. Хотя эта функция доступна для всех, для меня это скорее окольный путь объединения дублирующихся строк.
Совет. QUERY настолько мощный, что может объединять не только дубликаты в пределах листа - он может сопоставлять & объединять целые таблицы вместе.
Более того, пока вы не изучите запросы, которые она использует, и правила их применения, функция не принесет особой пользы.
Самый быстрый способ объединения дублирующихся строк
Когда вы потеряли всякую надежду найти простое решение для объединения нескольких строк на основе дубликатов, наше дополнение для Google Sheets станет отличным выходом. :)
Combine Duplicate Rows сканирует столбец с повторяющимися записями, объединяет соответствующие ячейки из других столбцов, разделяет эти записи разделителями и объединяет числа. Все одновременно и за несколько щелчков мыши!
Помните мой список книг в магазине с несколькими сотнями строк? Давайте посмотрим, как инструмент будет управлять им.
Совет. Поскольку утилита является частью Power Tools, сначала установите ее и перейдите непосредственно к разделу Слияние и объединение группа:
Затем щелкните значок дополнения, чтобы открыть его:
- После запуска дополнения выберите диапазон, в котором необходимо объединить дублирующиеся строки:
- колонки с ценностями, которые вы будете объединять
- способы объединения этих записей: слияние или вычисление
- разделитель для объединения ячеек с текстом
- функция для вычисления чисел
Для меня важно, чтобы все книги, принадлежащие одному автору, были выведены в одну ячейку и разделены разрывными линиями. Если названия повторяются, дополнение покажет их только один раз.
Что касается количества, я не против подсчета всех книг по каждому автору. Номера дубликатов, если таковые имеются, будут суммироваться.
Инструмент объединил дублирующиеся строки в моем списке книг. Вот часть того, как теперь выглядят мои данные:
Совет. В качестве альтернативы можно разделить один лист на несколько листов, чтобы получилась отдельная таблица со всеми книгами по каждому автору, или выделить дублирующиеся строки в Google Sheets.
Совет. Посмотрите, как я использовал это дополнение:
Или посмотрите короткий видеоролик, знакомящий с этим инструментом:
Использование сценариев для полуавтоматического объединения дубликатов
Еще одна возможность Combine Duplicate Rows заключается в полуавтоматическом использовании.
Если вы часто проходите по шагам и выбираете одни и те же параметры, вы можете сохранить их в сценарии. Сценарии позволят вам без труда повторно использовать одни и те же параметры на одном или разных наборах данных.
Вам нужно будет дать своему сценарию имя & указать лист и диапазон, который он должен обрабатывать:
Настройки, сохраненные здесь, можно быстро вызвать из меню Google Sheets. Дополнение сразу же начнет объединять дублирующиеся строки, избавляя вас от лишних затрат времени:
Я искренне рекомендую вам познакомиться с этим инструментом и его возможностями поближе, ведь Google Sheets "темны и полны ужасов", если вы понимаете, о чем я ;)