Подсчитать Количество Уникальных Значений в Столбце Excel • С помощью функций vba

Извлечение уникальных значений из диапазона ячеек или массива

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

Макрос и дополнительная функция из файла во вложении:

Комментарии

Это потому что вы в другой файл перенесли только часть кода (а код функции UniqueValuesFromArray забыли скопировать)

Добрый день!
На родном файле макрос работает отлично, на другом, с тем же расширением не работает, выдает ошибку Sub or Function not defined на UniqueValuesFromArray. В чем может быть причина?
Расширения обоих файлов поменял на .xlsm
Спасибо!

Видимо, 36-е значение (которое «первое уникальное») — только с виду похоже на первое
(например, есть лишний пробел, или одна русская буква заменена похожей английской)

Сравнить посимвольно 2 ячейки можно этой надстройкой:
http://excelvba.ru/tools/CharCodes

Добрый день.
Сразу скажу, что в макросах не че не понимаю.
Мне очень понравилась ваша функция, но появилась проблема.
Функция выбирает 35 уникальных значений, далее возвращает первое уникальное.
В чем проблема?

пользовательская функция — для использования в качестве формулы массива

выделяете НЕСКОЛЬКО ячеек, вводите эту формулу, и завершаете ввод нажатием Ctrl + Shift + Enter (вместо обычного Enter)
Тогда будет выводиться несколько уникальных значений

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

Добрый вечер. Разбираю макрос, который здесь представлен. С VBA не работала. Можно ли усложнить функцию вывода уникальных: вывод за период временной с исключением каких-то уникальных значений, т.е. возможно это значение встречается в этот период несколько раз, но выводить его не надо, так как не интересно. Буду очень благодарна за помощь

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

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

Вопрос не актуален.
Прочитал ниже, что мне надо использовать http://excelvba.ru/code/JoinedArray

В дополнительном столбце, при помощи формулы типа =СЦЕПИТЬ(A1;»//»;B1), объедините значения этих 2 столбцов,
и потом по этому доп.столбцу отбирайте уникальные

Подскажите пожалуйста, как изменить ваши процедуры, чтобы можно было выбрать уникальные значения не одного столбца, а нескольких. Например в Стобце A значения а,в,а,в. В столбце B в соседних ячейках значения с,д,с,е. Нужно чтобы макрос вдавал массив: В первом столбце: а,в,в. В соседнем с,д,е.

Спасибо за функцию.
Работает отлично.
Это уже вторая Ваша функция в течение двух дней, которую я применил в своей работе.
Завтра еще третью буду пробовать — поиск в массиве :)

Так сделать можно, но.
одно дело — выбрать уникальные значения (тут всё ясно, вариантов особо нет),
и совсем другое — выбрать строки с уникальными значениями в каком-то столбце.

К примеру, есть у нас 3 строки с одинаковыми значениями в 1-м столбце.
Какую из этих трёх строк выводить в результат? Первую, третью, вторую?

Вообще, у меня есть уже такая функция (даже с большей функциональностью, чем вам требуется):
http://excelvba.ru/code/JoinedArray

Сейчас выборка уникальный происходит только по столбцу «A».
Возможно ли сделать выборку уникальных по столбцу «A», но с условием, чтобы в диапазон фильтрования попадали также столбцы B и C ?

Т.е. чтобы был аналог функционалу Excel 2007: Выделяю столбцы A,B,C => Данные => Удалить дубликаты => В качестве столбца, по которому будет происходить удаление дубликатов выбираю только столбец A.

Как результат: уникальные значения будут отобраны по столбцу «А», но соответствующие записи из столбцов B и C будут также сохранены.

Вроде разобрался:
Dim ПервыйСтолбец As Range: Set ПервыйСтолбец = Range(Sheets(«данные»).Range(«A1»), Sheets(«данные»).Range(«A» & Rows.Count).End(xlUp))

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

Dim ПервыйСтолбец As Range: Set ПервыйСтолбец = Sheets(«данные»).Range([A1], Sheets(«данные»).Range(«A» & Rows.Count).End(xlUp))

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

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

Как сделать список уникальных значений в excel?
Если у вас Excel 2003 или старше, то для удаления дубликатов и вытаскивания из списка уникальных (неповторяющихся) элементов можно использовать Расширенный фильтр (Advanced Filter) из меню (вкладки) Данные (Data).
[expert_bq id=»1570″]если список редактируется или в него дописываются еще элементы, то они автоматически проверяются на уникальность и отбираются. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] Как работает выборка уникальных значений Excel? При выборе любого значения (фамилии) из выпадающего списка B1, в таблице подсвечиваются цветом все строки, которые содержат это значение (фамилию). Чтобы в этом убедится в выпадающем списке B1 выберите другую фамилию. После чего автоматически будут выделены цветом уже другие строки. Такую таблицу теперь легко читать и анализировать.
Excel посчитать количество вхождений в столбце

Посчитать количество столбцов в Excel — Как посчитать количество значений в столбце Excel — Как в офисе.

Добрый вечер. Разбираю макрос, который здесь представлен. С VBA не работала. Можно ли усложнить функцию вывода уникальных: вывод за период временной с исключением каких-то уникальных значений, т.е. возможно это значение встречается в этот период несколько раз, но выводить его не надо, так как не интересно. Буду очень благодарна за помощь

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: