Теми статей
Обрати теми

Excel: пошук дублікатів за кількома колонками

Редакція БК
Відповідь на запитання

Excel: пошук дублікатів за кількома колонками

 

Шановна редакціє! Допоможіть вирішити таку проблему. Є база даних в Excel. У ній потрібно знайти записи з однаковими значеннями в окремих колонках, що повторюються. Номери цих колонок завчасно відомі. На жаль, ні автоматичний, ні розширений фільтри з таким завданням не впоралися. Чи є інший варіант його вирішення? Наперед завдячую.

А. Фролов, м. Харків

Відповідає Микола КАРПЕНКО, канд. техн. наук, доцент кафедри прикладної математики та інформаційних технологій Харківської національної академії міського господарства

 

Дійсно, безпосередньо інструменти фільтрації даних Excel 2003 описане вами завдання не вирішать. Зате його вирішить… сам Excel. Тільки йому потрібно в цьому трохи допомогти, що ми зараз і зробимо на невеликому прикладі.

Отже, є база даних, зображена на рис. 1. Це фрагмент журналу проводок з кореспонденцією «

Дт 902/Кт 281» із демонстраційного прикладу до програми «1С:Бухгалтерія». У цій базі (а на практиці вона може бути дуже великою!) виникла проблема з оборотами по дебету рахунка «281». І є підозра, що якусь накладну помилково введено двічі.

img 1

Наше завдання — відшукати цю накладну. Тобто ми повинні знайти в базі даних усі записи зі значеннями, що повторюються, у колонках «Сбк2», «Сбк3», «Дебет» і «Сумма» та серед них спробувати виявити причину помилки. Виконуємо такі дії:

1) відкриваємо файл із базою даних, праворуч від основної таблиці вводимо дві колонки. Одна називатиметься «Ключ» (це значення ми записуємо до комірки «M1»), друга — «Пр» (цей текст записуємо до комірки «N1»);

2) до комірки «M2» уводимо формулу «=E2&”-”&G2&”-”&I2&”-”&K2». Цей вираз об’єднує дані з колонок «E», «G», «I», «K» в один робочий ключ. Роздільник «-» я поставив виключно для того, щоб зручніше було контролювати результат роботи формули. Жодної функціональної ролі цей роздільник не відіграє;

3) копіюємо формулу на всю висоту таблиці. Результат у колонці «Ключ» виглядатиме трохи моторошно, але нам зараз краса ні до чого. Тепер наше завдання — знайти в колонці значення «M», що повторюються. Найпростіше це зробити функцією «СЧЕТЕСЛИ()». За її допомогою ми підрахуємо, скільки разів поточне значення робочого ключа зустрічалося в колонці «I». Для цього виконуємо такі дії:

4) до комірки «N2» уводимо формулу «=СЧЕТЕСЛИ(M:M;M2)»;

5) копіюємо формулу на всю висоту колонки «Пр». Результат нашої роботи показано на рис. 2 (частину колонок на цьому рисунку приховано).

img 2

У принципі, завдання вирішене, але є підозрілі моменти. Наприклад, нульові значення в колонці «Пр» (комірка «N3» на рис. 2). Звичайно, на вирішення завдання вона не вплине, але порядок є порядок, і розібратися потрібно.

Причина такої поведінки нашої таблиці — у функції «=СЧЕТЕСЛИ(M:M;M2)». Вона не сприймає текст «<…>» (порожні значення субконто в окремих рахунках проводок). Щоб розрахунки набули цивілізованішого вигляду, виконуємо такі дії:

1) виділяємо колонку «E» (вона бере участь у розрахунках, і в ній є текст «<…>»);

2) натискуємо на «Ctrl+H» (меню «Правка → Заменить»);

3) у полі «Найти» вводимо текст «<…>»;

4) у полі «Заменить на:» вводимо порожній рядок;

5) натискуємо на кнопку «Заменить все». Нульові значення в колонці «Пр» зникли.

Усе, що нам залишається, — вибрати значення, що повторюються, орієнтуючись на єдиний стовпець «Пр». Із цим завданням успішно впорається й автофільтр. Виконуємо такі дії:

1) викликаємо «Данные → Фильтр → Автофильтр»;

2) клацаємо по значку вибору в колонці «Пр»;

3) з меню, що розкрилося, вибираємо «Условие…». З’явиться вікно «Пользовательский автофильтр»;

4) у цьому вікні вибираємо тип умови «Больше или равно», а в полі значення вводимо «2»;

5) у вікні «Пользовательский автофильтр» натискуємо на «ОК».

На екрані залишаться чотири записи (рис. 3).

img 3

Серед них легко виявити причину помилки: дві однакові прибуткові накладні від «Барт и КО» від «06/12/2009» і від «13/12/2009».

Особисто мені подобається інший спосіб вибору значень, що повторюються. У ньому не потрібно використовувати автофільтр. Виконуємо такі дії:

1) через меню «Данные → Фильтр → Автофильтр» скасовуємо дію автофільтру;

2) виділяємо блок комірок «A2:N2»;

3) викликаємо меню «

Формат → Условное форматирование». З’явиться вікно, як показано на рис. 4;

img 4

4) клацаємо по списку «Условие 1», вибираємо варіант «Формула»;

5) у полі формули вводимо вираз «

=$N2>1»;

6) клацаємо по кнопці «

Формат». Відкриється вікно «Формат ячеек»;

7) у цьому вікні переходимо на закладку «

Вид». Вибираємо сірий колір для заливки комірок. Зрозуміло, ви можете зупинити свій вибір на інших параметрах форматування;

8) у вікні «

Формат ячеек» натискуємо на «ОК»;

9) у вікні «

Условное форматирование» натискуємо на «ОК»;

10) не знімаючи виділення з блока «

A2:N2», клацаємо по кнопці «Формат по образцу» панелі інструментів «Стандартная»;

11) утримуючи натисненою ліву кнопку миші, обводимо всю область нашої бази даних.

Усі записи, що повторюються, підсвічуватимуться сірим фоном, як показано на рис. 5. Як бачите, завдання вибору записів-дублікатів у базах даних Excel цілком до снаги!

img 5

І останній нюанс. Ви, напевно, звернули увагу, що параметри умовного форматування я присвоїв відразу цілому блоку комірок «

A2:N2» і потім копіював формат цього блока на всю висоту таблиці. Причина такої дії знаходиться в колонці «Дата». У принципі, ми могли б визначити умовний формат для комірки «A2», потім викликати інструмент «Формат по образцу» та перенести параметри форматування з комірки «A2» на всю іншу таблицю. Але тоді відбудеться таке. У колонці «A» записано дати, причому зображені у відповідному форматі — «дд/мм/гг». Цей формат разом із параметрами умовного форматування пошириться при копіюванні на всі комірки таблиці, у тому числі й на колонку «Кол», в якій записано числа. Зрозуміло, що зображення цих чисел буде порушено, для правильного відображення таблиці формат у колонці «L» доведеться відновити. Щоб позбавити себе від марної праці, ми запам’ятали формат відразу цілого рядка («A2:N2») та скопіювали його вниз. При цьому зображення кожної колонки, зрозуміло, збереглося.

 

Чекаю ваших запитань, зауважень та пропозицій на

bk@id.factor.ua, nictomkar@rambler.ru або на форумі редакції www.bk.factor.ua/forum. Успішної роботи!
App
Завантажуйте наш мобільний додаток Factor

© Factor.Media, 1995 -
Всі права захищені

Використання матеріалів без узгодження з редакцією заборонено

Ознайомитись з договором-офертою

Приєднуйтесь
Адреса
м. Харків, 61002, вул. Сумська, 106а
Ми приймаємо
ic-privat ic-visa ic-visa

Ми використовуємо cookie-файли, щоб зробити сайт максимально зручним для вас та аналізувати використання наших продуктів та послуг, щоб збільшити якість рекламних та маркетингових активностей. Дізнатися більше про те, як ми використовуємо ці файли можна тут.

Дякуємо, що читаєте нас Увійдіть і читайте далі