Veseliy.4el

Veseliy.4el

Пикабушник
114К рейтинг 9909 подписчиков 12 подписок 123 поста 95 в горячем
Награды:
более 1000 подписчиковПикабу 15 лет!5 лет на ПикабуС Днем рождения Пикабу!выполнение всех достиженийС Днем рождения, Пикабу! За победу в продуктовом сёрфинге За исследование параллельных миров объединение 500 и более тегов За серию постов об Excel и Google docsболее 10000 подписчиков самый сохраняемый пост недели самый сохраняемый пост недели редактирование тегов в 1000 и более постах объединение 1000 и более тегов
76

"Русско-узбекский" словарь

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

На это есть три причины:
1. Слово не имеет перевода на узбекский язык (например "аэропорт" - "тайёргох", его ввели, но оно не прижилось и его потом отменили).
2. Слово на узбекском произносится сложнее, чем на русском (например "масхарабоз" - "клоун").
3. Русское слово популярнее, чем узбекское (например "свежий" - "барра").

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

"Русско-узбекский" словарь Словарь, Узбекский язык, Русский язык, Юмор
190

Статистика сообщества за полгода

Внимание!

Проводится голосование за ачивку пользователю

https://zalipaka.icu/surveys.php?id=zG9sO3GEynvL

Приветствую всех подписчиков сообщества MS, Libreoffice & Google docs!

Ровно полгода назад благодаря Вашей поддержке было создано наше сообщество, чтобы делиться приёмами и повышать уровень знаний об Excel и Google docs интересующихся пользователей.


За этот короткий срок было опубликовано 104 поста, а у сообщества появилось 7410 подписчиков и количество растёт! Это несомненно радует, что тема сообщества интересна Пикабушникам, а также вдохновляет авторов на написание новых постов.

Статистика сообщества за полгода Microsoft Excel, Статистика

Многие не жалуют новорегов за то, что они постят бессмысленную дичь, но это не относится к новичкам нашего сообщества @ExceLifeHack, @Petrov210217, @SensaiKudisai. Они постят годный контент, который многие сохраняют, а авторы получают благодарность и обрастают подписчиками))


В нашем сообществе есть даже девушки @1Irina1985 и @mymamalama, посты которых получили теплый приём и плюсы в репутацию)) продолжайте пилить посты, у вас это хорошо получается)

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


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

Статистика сообщества за полгода Microsoft Excel, Статистика

Скачать таблицу можно здесь.

Этот пост будет в закрепе, поэтому вы всегда сможете быстро посмотреть нужную вам информацию.


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

Показать полностью 2
554

Количество оставшихся дней до контрольной даты

В этой статье мы рассмотрим пример использования функции ВПР для подсчёта оставшегося количества дней до заданной даты.


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

Количество оставшихся дней до контрольной даты Microsoft Excel, Сроки, Таблица, Полезное, На заметку

=-ВПР(;B2-ДАТА(ГОД(B2)+{1:0};МЕСЯЦ(A2);ДЕНЬ(A2));1)

=-VLOOKUP(;B2-DATE(YEAR(B2)+{1:0};MONTH(A2);DAY(A2));1)


Рассмотрим формулу подробнее:

- Искомое значение в ВПР() ноль, а массив в котором происходит поиск состоит из двух значений. Последний аргумент функции опущен.

Описание из справки формулы ВПР: «Интервальный_просмотр — это логическое значение, которое определяет, нужно ли, чтобы ВПР искала точное или приближенное соответствие. Если этот аргумент имеет значение ИСТИНА или опущен, то возвращается приблизительно соответствующее значение; другими словами, если точное соответствие не найдено, то возвращается наибольшее значение, которое меньше, чем искомое_значение».

- Найденное значение это и есть количество дней до контрольного дня, но со знаком минус. Знак минус перед ВПР() меняет знак результата.

- Единица в конце формулы это порядковый номер столбца, из которого берутся значения.


Также есть другой вариант этой же формулы:

Количество оставшихся дней до контрольной даты Microsoft Excel, Сроки, Таблица, Полезное, На заметку

=-ВПР(;B1-(МЕСЯЦ(A1)&{-1:0}-ГОД(B1))-ДЕНЬ(A1)+1;1)

=-VLOOKUP(;B1-(MONTH(A1)&{-1:0}-YEAR(B1))-DAY(A1)+1;1)


Кроме того, данный приём можно использовать для подсчёта оставшихся дней до дня рождения, применив в столбце «Текущая дата» формулу =СЕГОДНЯ()

Количество оставшихся дней до контрольной даты Microsoft Excel, Сроки, Таблица, Полезное, На заметку

Формулы взяты отсюда, пост оформлен мною.

Показать полностью 2
646

Сортировка по дням рождения в Excel

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


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

Сортировка по дням рождения в Excel Microsoft Excel, Таблица, День рождения, Сортировка, Полезное, На заметку, Длиннопост

Для отображения нужного порядка дней рождений сотрудников, нам необходимо сделать маленький приём.


В соседнем столбце используем функцию ТЕКСТ (TEXT), которая представляет числа и даты в заданном формате: =ТЕКСТ(B4;"ММ ДД")

Сортировка по дням рождения в Excel Microsoft Excel, Таблица, День рождения, Сортировка, Полезное, На заметку, Длиннопост

Формат «ММ ДД» означает, что нужно из всей даты отобразить только номер месяца и день.


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

Сортировка по дням рождения в Excel Microsoft Excel, Таблица, День рождения, Сортировка, Полезное, На заметку, Длиннопост

Вспомогательный столбец удаляем. Для большей наглядности можно задать разделительные линии между месяцами.


Выделяем весь список (кроме заголовка) и на вкладке Главная выбираем - Условное форматирование - Создать правило (Home - Conditional formatting - Create Rule). В появившемся окне выбираем - Использовать формулу для определения форматируемых ячеек и вводим формулу: =МЕСЯЦ($B2)<>МЕСЯЦ($B3)


В разделе Формат на вкладке Границы (Borders) выбираем нижнюю границу ячейки, задаём понравившийся цвет линии и убираем лишние знаки доллара в формуле, чтобы закрепить в ней только столбцы.

Сортировка по дням рождения в Excel Microsoft Excel, Таблица, День рождения, Сортировка, Полезное, На заметку, Длиннопост

Также можно на вкладке Вид выбрать Закрепить областиЗафиксировать верхнюю строку и ввести формулу =СЕГОДНЯ() для ежедневного обновления даты и визуального удобства.


P.S. При создании таблицы ни один шрифт не пострадал, только глаза)))

Шрифты для друзей _Arabian, a_Algerius, WienLight, Benguiat Rus, Romic

Показать полностью 4
396

ВПР и числа-как-текст

Обычные числа и числа-как-текст (т.е. числа, которые только выглядят как числа, а, по-сути, являются текстом) - это причина многих проблем и сложностей при работе с данными в Microsoft Excel. Одна из подобных ситуаций - использование функции ВПР (VLOOKUP) для поиска и подстановки, когда в исходных данных есть эти пресловутые числа в текстовом формате.


Рассмотрим классический пример - подстановку цен из прайс-листа в таблицу заказов по совпадению артикулов:

ВПР и числа-как-текст Microsoft Excel, Таблица, Полезное, На заметку, Длиннопост

Как и множество других функций и инструментов Excel, ВПР считает числа как текст не равноценными этим же числам в нормальном виде, поэтому выдаёт ошибку #Н/Д, сигнализируя, что искомое значение не обнаружено, хотя визуально оно, вроде бы, есть.


Давайте рассмотрим различные сценарии, с которыми мы здесь можем столкнуться и решения для каждого из них.


Примечание: Различить нормальные и текстовые числа не всегда легко. Иногда на таких ячейках появляется зелёный уголок-индикатор, иногда - нет. В этой статье, для наглядности, я буду выравнивать числа-как-текст по левому краю, а нормальные числа - по правому.


Вариант 1. Числа-как-текст в искомых значениях


Предположим для начала, что псевдочисла эпизодически встречаются у нас в искомых значениях, т.е. в таблице заказов (диапазон B4:B7) и перемешаны с нормальными числовыми артикулами, что приводит к появлению ошибок.


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

- умножения или деления на 1

- прибавления или вычитания 0

- двойного знака минус перед артикулом (равносильно двойному умножению на -1)


Значение артикула от выполнения такой безобидной математической операции никак не изменится, но сам факт её выполнения заставит Excel воспринимать артикул именно как число. А значит и ВПР найдет текстовые значения без проблем:

ВПР и числа-как-текст Microsoft Excel, Таблица, Полезное, На заметку, Длиннопост

Вариант 2. Числа-как-текст в таблице, где ищем


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

Самым простым и компактным вариантом будет приклеивание к артикулу пустой строки:

ВПР и числа-как-текст Microsoft Excel, Таблица, Полезное, На заметку, Длиннопост

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


Вариант 3. Пропадание начальных нулей


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

ВПР и числа-как-текст Microsoft Excel, Таблица, Полезное, На заметку, Длиннопост

Вариант 4. Числа-как-текст вперемешку с числами в обеих таблицах


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

Звучит страшно, но решается легко - нужно просто скомбинировать первый и второй способы, вложив их в функцию ЕСЛИОШИБКА (IFERROR). Эта функция прокачает обе версии ВПР - "текстовую" и "числовую" - и выдаст ту, которая не приводит к ошибке #Н/Д:

ВПР и числа-как-текст Microsoft Excel, Таблица, Полезное, На заметку, Длиннопост

Вот и всё - и никаких больше ошибок :)

Источник

Показать полностью 5
274

Редизайнер таблиц в Excel

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


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

- простая однострочная шапка, где у каждого столбца будет свое уникальное название (имя поля)

- одна строка - одна законченная операция (сделка, продажа, проводка, проект и т.д.)

- без объединенных ячеек

- без разрывов в виде пустых строк и столбцов


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

из такой таблицы

Редизайнер таблиц в Excel Microsoft Excel, Макрос, Vba, Таблица, Полезное, На заметку, Длиннопост

сделать

Редизайнер таблиц в Excel Microsoft Excel, Макрос, Vba, Таблица, Полезное, На заметку, Длиннопост

В терминах баз данных нижнюю таблицу обычно называют плоской (flat) - именно по таким таблицам лучше всего строить отчеты сводных таблиц (pivot tables) и проводить аналитику.


Преобразовать двумерную таблицу в плоскую можно при помощи простого макроса. Откройте редактор Visual Basic через вкладку Разработчик - Visual Basic (Developer - Visual Basic Editor) или сочетанием клавиш Alt+F11. Вставьте новый модуль (Insert - Module) и скопируйте туда текст этого макроса:

Sub Redesigner()

Dim i As Long

Dim hc As Integer, hr As Integer

Dim ns As Worksheet

hr = InputBox("Сколько строк с подписями сверху?")

hc = InputBox("Сколько столбцов с подписями слева?")

Application.ScreenUpdating = False

i = 1

Set inpdata = Selection

Set ns = Worksheets.Add

For r = (hr + 1) To inpdata.Rows.Count

For c = (hc + 1) To inpdata.Columns.Count

For j = 1 To hc

ns.Cells(i, j) = inpdata.Cells(r, j)

Next j

For k = 1 To hr

ns.Cells(i, j + k - 1) = inpdata.Cells(k, c)

Next k

ns.Cells(i, j + k - 1) = inpdata.Cells(r, c)

i = i + 1

Next c

Next r

End Sub

После этого можно закрыть редактор VBA и вернуться в Excel. Теперь можно выделить исходную таблицу (полностью, с шапкой и первым столбцом с месяцами) и запустить наш макрос через Разработчик - Макросы (Developer - Macros) или нажав сочетание Alt+F8.


Макрос вставит в книгу новый лист и создаст на нем новый, реконструированный вариант выделенной таблицы. С такой таблицей можно работать "по полной программе", применяя весь арсенал средств Excel для обработки и анализа больших списков.


Также есть второй вариант для работы с большими таблицами

Sub Redesigner()

Dim inpdata As Range, realdata As Range, ns As Worksheet

Dim i&, j&, k&, c&, r&, hc&, hr&

Dim out(), dataArr, hcArr, hrArr

hr = Val(InputBox("Сколько строк с подписями данных сверху?"))

hc = Val(InputBox("Сколько столбцов с подписями данных слева?"))

Set inpdata = Selection

If inpdata.Rows.Count <= hr Or inpdata.Columns.Count <= hc Then Exit Sub

Set realdata = inpdata.Offset(hr, hc).Resize(inpdata.Rows.Count - hr, inpdata.Columns.Count - hc)

dataArr = realdata.Value

If hr Then hrArr = inpdata.Offset(0, hc).Resize(hr, inpdata.Columns.Count - hc).Value

If hc Then hcArr = inpdata.Offset(hr, 0).Resize(inpdata.Rows.Count - hr, hc).Value

ReDim out(1 To Application.CountA(realdata), 1 To hr + hc + 1)

Set ns = Worksheets.Add

For i = 1 To UBound(dataArr, 1)

For j = 1 To UBound(dataArr, 2)

If Not IsEmpty(dataArr(i, j)) Then

k = k + 1

For c = 1 To hc: out(k, c) = hcArr(i, c): Next c

For r = 1 To hr: out(k, c + r - 1) = hrArr(r, j): Next r

out(k, c + r - 1) = dataArr(i, j)

End If

Next j, i

ns.Cells(2, 1).Resize(UBound(out, 1), UBound(out, 2)) = out

End Sub

Редизайн таблиц сэкономит кучу времени, нервов и сил, чтобы в оставшееся время почитать пикабу))

Взято отсюда

Показать полностью 2
599

Отслеживание входа пользователей в книгу Excel

Как понятно из заголовка, мы сделаем так, чтобы открытие рабочего файла на общем сетевом диске не осталось бесследным. Макрос будет фиксировать на отдельном (скрытом) листе имя пользователя, открывшего файл, а также дату-время открытия и закрытия файла.


Этап 1. Создаем "Лог"

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

Отслеживание входа пользователей в книгу Excel Microsoft Excel, Vba, Макрос, Полезное, Контроль, На заметку, Длиннопост, Системное администрирование

Этап 2. Макросы фиксации входа-выхода

Теперь добавим макросы для записи на лист Лог даты-времени и имен пользователей при открытии и закрытии книги. Для этого нужно открыть редактор Visual Basic с помощью сочетания Alt+F11 или с помощью кнопки Visual Basic на вкладке Разработчик (Developer) и найти в левом верхнем углу панель Project (если она не отображается, то включить ее можно сочетанием клавиш Ctrl+R):

Отслеживание входа пользователей в книгу Excel Microsoft Excel, Vba, Макрос, Полезное, Контроль, На заметку, Длиннопост, Системное администрирование

Двойным щелчком откройте модуль ЭтаКнига (ThisWorkbook) и вставьте туда пару наших макросов для обработки событий открытия и закрытия книги:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

'ищем последнюю занятую строчку в логах

lastrow = Worksheets("Лог").Range("A60000").End(xlUp).Row

'заносим дату-время выхода из файла

If lastrow>1 Then Worksheets("Лог").Cells(lastrow, 3) = Now

'сохраняемся перед выходом

ActiveWorkbook.Save

End Sub

Private Sub Workbook_Open()

'ищем последнюю занятую строчку в логах

lastrow = Worksheets("Лог").Range("A60000").End(xlUp).Row

'заносим имя пользователя и дату-время входа в файл

Worksheets("Лог").Cells(lastrow + 1, 1) = Environ("USERNAME")

Worksheets("Лог").Cells(lastrow + 1, 2) = Now

End Sub

Попробуйте открыть-закрыть этот файл пару раз и убедитесь, что на лист Лог попадает ваше имя пользователя (логин входа в Windows) и дата-время:

Отслеживание входа пользователей в книгу Excel Microsoft Excel, Vba, Макрос, Полезное, Контроль, На заметку, Длиннопост, Системное администрирование

Этап 3. Улучшаем надежность

Можно было бы скрыть лист Лог и на этом остановиться, но есть одно "но": если у пользователя, который открывает нашу книгу, макросы разрешены по умолчанию либо он сам их разрешает, нажав в окне предупреждения на кнопку Включить содержимое, то все в порядке:

Отслеживание входа пользователей в книгу Excel Microsoft Excel, Vba, Макрос, Полезное, Контроль, На заметку, Длиннопост, Системное администрирование

Но что если пользователь не разрешит выполнение макросов или они отключены у него по умолчанию? Тогда наши макросы отслеживания выполняться не будут и фиксации имени и даты не произойдет :( Как же заставить пользователя разрешить использование макросов?

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

Отслеживание входа пользователей в книгу Excel Microsoft Excel, Vba, Макрос, Полезное, Контроль, На заметку, Длиннопост, Системное администрирование

Суть в том, чтобы по умолчанию скрыть в книге все листы кроме этого, а рабочие листы с данными отображать с помощью специального макроса. Если пользователь не разрешил выполнение макросов, то он увидит в книге только один лист с предупреждением. Если же макросы разрешены, то наш макрос обработки события открытия книги скроет лист с предупреждением и отобразит листы с данными. Чтобы пользователь сам не отобразил их - используем суперскрытие вместо обычного скрытия листов (параметр xlSheetVeryHidden вместо обычного False).

Чтобы реализовать все описанное, слегка изменим наши процедуры в модуле ЭтаКнига (ThisWorkbook)

Private Sub Workbook_BeforeClose(Cancel As Boolean)

'ищем последнюю занятую строчку в логах

lastrow = Worksheets("Лог").Range("A60000").End(xlUp).Row

'заносим дату-время выхода из файла

If lastrow > 1 Then Worksheets("Лог").Cells(lastrow, 3) = Now

'скрываем все листы, кроме листа ПРЕДУПРЕЖДЕНИЕ

Worksheets("Предупреждение").Visible = True

For Each sh In ActiveWorkbook.Worksheets

If sh.Name = "Предупреждение" Then

sh.Visible = True

Else

sh.Visible = xlSheetVeryHidden

End If

Next sh

'сохраняемся перед выходом

ActiveWorkbook.Save

End Sub


Private Sub Workbook_Open()

'ищем последнюю занятую строчку в логах

lastrow = Worksheets("Лог").Range("A60000").End(xlUp).Row

'заносим имя пользователя и дату-время входа в файл

Worksheets("Лог").Cells(lastrow + 1, 1) = Environ("USERNAME")

Worksheets("Лог").Cells(lastrow + 1, 2) = Now

'отображаем все листы

For Each sh In ActiveWorkbook.Worksheets

sh.Visible = True

Next sh

'скрываем листы ПРЕДУПРЕЖДЕНИЕ и ЛОГ

Worksheets("Предупреждение").Visible = xlSheetVeryHidden

Worksheets("Лог").Visible = xlSheetVeryHidden

End Sub

Чтобы просмотреть скрытый Лог откройте редактор VisualBasic (Alt+F11), выделите лист на панели Project и измените его видимость на панели Properties, используя свойство Visible:

Отслеживание входа пользователей в книгу Excel Microsoft Excel, Vba, Макрос, Полезное, Контроль, На заметку, Длиннопост, Системное администрирование

Если пользователи настолько продвинутые, что знают про суперскрытые листы и могут их отобразить через редактор Visual Basic или нарушить работу наших макросов, то можно дополнительно поставить пароль на просмотр и изменение макросов. Для этого щелкните правой кнопкой мыши по имени файла в панели Project (строка VBAProject (blackbox.xls)), выберите команду VBA Project Properties и включите флажок Lock project for viewing и задайте пароль на вкладке Protection:

Отслеживание входа пользователей в книгу Excel Microsoft Excel, Vba, Макрос, Полезное, Контроль, На заметку, Длиннопост, Системное администрирование

Теперь точно никто не уйдет безнаказанным.


Интересные поправки в макрос из комментария источника:

Вместо поиска последней занятой строки в таких случаях я обычно вставляю новую строку сразу после "шапки". Все предыдущие строки сдвигаются вниз, конечно. В результате немного упрощается код, сортировка получается обратная, "новые сверху", что позволяет быстрее просматривать последние записи, не прокручивая лист. При открытии - вставляется строка, её номер всегда будет 2. При закрытии файла в строку 2 добавляется время. Переполнение этого стека маловероятно, но и проверку такого переполнения проводить не нужно, просто отрезать строки ниже запланированного количества записей, без проверки.

Private Sub Workbook_Open()

Worksheets("Реестр изменений").Rows("2:2").Insert Shift:=xlDown 'вставляем между строками 1 и 2 новую строку

Worksheets("Реестр изменений").Rows("501:501").Delete Shift:=xlUp 'удаляем строку 501 (реестр на 500 строк)

Worksheets("Реестр изменений").Cells(2, 1) = Environ("USERNAME") 'запись в первую ячейку второй строки

Worksheets("Реестр изменений").Cells(2, 2) = Now 'запись во вторую ячейку второй строки

Показать полностью 6
167

Макрос для выделения дубликатов разными цветами

Как известно, чтобы выделить дубликаты цветом в Excel можно воспользоваться специальной опцией в «условном форматировании».

Достаточно выделить диапазон, задать цвет заливки, - и все повторяющиеся (или, наоборот, уникальные) значения будут выделены.

Но иногда требуется, чтобы различные повторяющиеся значения были выделены РАЗНЫМИ ЦВЕТАМИ.

В этом случае, без макросов не обойтись. Нажимаем сочетание клавиш Alt+F11 или кнопку Visual Basic на вкладке Разработчик (Developer), вставляем новый пустой модуль через меню Insert - Module и копируем туда код этого макроса:

Sub ВыделитьДубликатыРазнымиЦветами()

On Error Resume Next

' массив цветов, используемых для заливки ячеек-дубликатов

Colors = Array(12900829, 15849925, 14408946, 14610923, 15986394, 14281213, 14277081, _

9944516, 14994616, 12040422, 12379352, 15921906, 14336204, 15261367, 14281213)

Dim coll As New Collection, dupes As New Collection, _

cols As New Collection, ra As Range, cell As Range, n&

Err.Clear: Set ra = Intersect(Selection, ActiveSheet.UsedRange)

If Err Then Exit Sub

ra.Interior.ColorIndex = xlColorIndexNone: Application.ScreenUpdating = False

For Each cell In ra.Cells ' запонимаем значение дубликатов в коллекции dupes

Err.Clear: If Len(Trim(cell)) Then coll.Add CStr(cell.Value), CStr(cell.Value)

If Err Then dupes.Add CStr(cell.Value), CStr(cell.Value)

Next cell

For i& = 1 To dupes.Count ' заполняем коллекцию cols цветами для разных дубликатов

n = n Mod (UBound(Colors) + 1): cols.Add Colors(n), dupes(i): n = n + 1

Next

For Each cell In ra.Cells ' окрашиваем ячейки, если для её значения назначен цвет

cell.Interior.color = cols(CStr(cell.Value))

Next cell

Application.ScreenUpdating = True

End Sub

Теперь можно выделить любой диапазон с данными на листе и запустить макрос с помощью сочетания клавиш Alt+F8 или через кнопку Макросы (Macros) на вкладке Разработчик (Developer).

Макрос для выделения дубликатов разными цветами Microsoft Excel, Макрос, Vba, Полезное, На заметку

Плюсом этого макроса является то, что он не виснет при выделении всего листа (или столбца) целиком и не вылетает с ошибкой, если найдено более 55 дубликатов. Макрос взят здесь

Показать полностью 1
Отличная работа, все прочитано!