Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Подсчет количества дубликатов в столбце - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Подсчет количества дубликатов в столбце (Макросы/Sub)
Подсчет количества дубликатов в столбце
rtv206 Дата: Четверг, 09.05.2019, 17:58 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 40
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Доброго времени суток!
Уважаемые форумчане помогите в решении задачки
Необходимо посчитать количество дубликатов в столбце, которые выделяются условным форматированием
и вывести количество в ячейку
К сообщению приложен файл: 123854.xlsx(9.1 Kb)
 
Ответить
СообщениеДоброго времени суток!
Уважаемые форумчане помогите в решении задачки
Необходимо посчитать количество дубликатов в столбце, которые выделяются условным форматированием
и вывести количество в ячейку

Автор - rtv206
Дата добавления - 09.05.2019 в 17:58
_Boroda_ Дата: Четверг, 09.05.2019, 18:31 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 15578
Репутация: 6075 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
Код
=СУММПРОИЗВ(Ч(СЧЁТЕСЛИ(A1:A99;A1:A99)>1))

А вообще - название темы не очень. Решения есть не только с СЧЁТЕСЛИ. Просто навскидку - ПОИСКПОЗ, ЧАСТОТА, ПРОСМОТР, ...
К сообщению приложен файл: 123854_1.xlsx(9.4 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
Код
=СУММПРОИЗВ(Ч(СЧЁТЕСЛИ(A1:A99;A1:A99)>1))

А вообще - название темы не очень. Решения есть не только с СЧЁТЕСЛИ. Просто навскидку - ПОИСКПОЗ, ЧАСТОТА, ПРОСМОТР, ...

Автор - _Boroda_
Дата добавления - 09.05.2019 в 18:31
rtv206 Дата: Суббота, 11.05.2019, 21:23 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 40
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, спасибо, буду тестировать
 
Ответить
Сообщение_Boroda_, спасибо, буду тестировать

Автор - rtv206
Дата добавления - 11.05.2019 в 21:23
rtv206 Дата: Среда, 12.06.2019, 18:58 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 40
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, При очень больших количествах ячеек, которые необходимо проверять, начинает тормозить Excel.
Есть ли другие варианты? кроме
Код
=СУММПРОИЗВ(Ч(СЧЁТЕСЛИ(A1:A99;A1:A99)>1))


Сообщение отредактировал rtv206 - Среда, 12.06.2019, 18:59
 
Ответить
Сообщение_Boroda_, При очень больших количествах ячеек, которые необходимо проверять, начинает тормозить Excel.
Есть ли другие варианты? кроме
Код
=СУММПРОИЗВ(Ч(СЧЁТЕСЛИ(A1:A99;A1:A99)>1))

Автор - rtv206
Дата добавления - 12.06.2019 в 18:58
_Boroda_ Дата: Среда, 12.06.2019, 22:46 | Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 15578
Репутация: 6075 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Вариантов много. Но большинство из них тоже тормознутые
Попробуйте так
Кол-во различных неуникальных кодов
Код
=СУММ(--(ЧАСТОТА(A1:A99;A1:A99)>1))

Кол-во "лишних" кодов (в массиве 1,1,2,2,2,2 лишних 4 штуки)
Код
=СЧЁТ(A:A)+СУММ(-(ЧАСТОТА(A1:A99;A1:A99)>0))

Кол-во дубликатов вообще
Код
=СЧЁТ(A:A)+СУММ(-(ЧАСТОТА(A1:A99;A1:A99)>0))-СУММ(-(ЧАСТОТА(A1:A99;A1:A99)>1))

Или, что то же самое
Код
=СЧЁТ(A:A)+СУММ({-1;1}*(ЧАСТОТА(A1:A99;A1:A99)>{0;1}))
К сообщению приложен файл: 123854_5.xlsx(9.8 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВариантов много. Но большинство из них тоже тормознутые
Попробуйте так
Кол-во различных неуникальных кодов
Код
=СУММ(--(ЧАСТОТА(A1:A99;A1:A99)>1))

Кол-во "лишних" кодов (в массиве 1,1,2,2,2,2 лишних 4 штуки)
Код
=СЧЁТ(A:A)+СУММ(-(ЧАСТОТА(A1:A99;A1:A99)>0))

Кол-во дубликатов вообще
Код
=СЧЁТ(A:A)+СУММ(-(ЧАСТОТА(A1:A99;A1:A99)>0))-СУММ(-(ЧАСТОТА(A1:A99;A1:A99)>1))

Или, что то же самое
Код
=СЧЁТ(A:A)+СУММ({-1;1}*(ЧАСТОТА(A1:A99;A1:A99)>{0;1}))

Автор - _Boroda_
Дата добавления - 12.06.2019 в 22:46
rtv206 Дата: Пятница, 14.06.2019, 11:42 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 40
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, Спасибо, буду пробовать
 
Ответить
Сообщение_Boroda_, Спасибо, буду пробовать

Автор - rtv206
Дата добавления - 14.06.2019 в 11:42
rtv206 Дата: Четверг, 20.06.2019, 22:55 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 40
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Подскажите, пожалуйста, других способов нет? Очень сильно тормозит при большом количестве значений.
Макросом например считать количество ячеек с условным форматированием?
 
Ответить
СообщениеПодскажите, пожалуйста, других способов нет? Очень сильно тормозит при большом количестве значений.
Макросом например считать количество ячеек с условным форматированием?

Автор - rtv206
Дата добавления - 20.06.2019 в 22:55
sboy Дата: Пятница, 21.06.2019, 09:25 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 722 ±
Замечаний: 0% ±

Excel 2010
Кол-во "лишних" кодов

с помощью Power Query
[vba]
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content][Столбец1],
    dupl = Table.FromRecords({[Дубликаты =List.Count(Источник)-List.Count(List.Distinct(Источник))]})
in
    dupl
[/vba]
К сообщению приложен файл: 7192929.xlsx(18.1 Kb)


Яндекс: 410016850021169
 
Ответить
Сообщение
Кол-во "лишних" кодов

с помощью Power Query
[vba]
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content][Столбец1],
    dupl = Table.FromRecords({[Дубликаты =List.Count(Источник)-List.Count(List.Distinct(Источник))]})
in
    dupl
[/vba]

Автор - sboy
Дата добавления - 21.06.2019 в 09:25
_Boroda_ Дата: Пятница, 21.06.2019, 11:46 | Сообщение № 9
Группа: Модераторы
Ранг: Местный житель
Сообщений: 15578
Репутация: 6075 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Ловите макросом с кнопки
[vba]
Код
Sub KolDub()
    c_ = 1
    r0_ = 1
    n_ = Cells(Rows.Count, c_).End(3).Row - r0_ + 1
    ar = Cells(r0_, c_).Resize(n_)
    Set slov1 = CreateObject("Scripting.Dictionary")
    Set slov2 = CreateObject("Scripting.Dictionary")
    With slov1
        For i = 1 To n_
            If .exists(ar(i, 1)) Then
                z_ = z_ + 1
                aaa = slov2.Item(ar(i, 1))
            Else
                aaa = .Item(ar(i, 1))
            End If
        Next i
    End With
    Cells(1, 6) = z_ + slov2.Count
End Sub
[/vba]
К сообщению приложен файл: 123854_6.xlsm(15.0 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЛовите макросом с кнопки
[vba]
Код
Sub KolDub()
    c_ = 1
    r0_ = 1
    n_ = Cells(Rows.Count, c_).End(3).Row - r0_ + 1
    ar = Cells(r0_, c_).Resize(n_)
    Set slov1 = CreateObject("Scripting.Dictionary")
    Set slov2 = CreateObject("Scripting.Dictionary")
    With slov1
        For i = 1 To n_
            If .exists(ar(i, 1)) Then
                z_ = z_ + 1
                aaa = slov2.Item(ar(i, 1))
            Else
                aaa = .Item(ar(i, 1))
            End If
        Next i
    End With
    Cells(1, 6) = z_ + slov2.Count
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 21.06.2019 в 11:46
rtv206 Дата: Суббота, 22.06.2019, 13:10 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 40
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, как прописать чтобы поиск дубликатов был в определенном диапазоне?
Например в столбцах c E по Z.
 
Ответить
Сообщение_Boroda_, как прописать чтобы поиск дубликатов был в определенном диапазоне?
Например в столбцах c E по Z.

Автор - rtv206
Дата добавления - 22.06.2019 в 13:10
_Boroda_ Дата: Вторник, 25.06.2019, 09:06 | Сообщение № 11
Группа: Модераторы
Ранг: Местный житель
Сообщений: 15578
Репутация: 6075 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Если ответов нет, то скорее всего что-то не так в вопросе.
В Вашем вопросе по крайней мере два нетака -
1, Нет файла-примера с данными в столбцах Е:Z
2. Не определено понятие дубликатов в разных столбцах - если в столбце Е значения а,в,в; в столбце F значения с,d,а, то понятно, что в - дубликат, но вот дубликат ли а?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЕсли ответов нет, то скорее всего что-то не так в вопросе.
В Вашем вопросе по крайней мере два нетака -
1, Нет файла-примера с данными в столбцах Е:Z
2. Не определено понятие дубликатов в разных столбцах - если в столбце Е значения а,в,в; в столбце F значения с,d,а, то понятно, что в - дубликат, но вот дубликат ли а?

Автор - _Boroda_
Дата добавления - 25.06.2019 в 09:06
rtv206 Дата: Вторник, 25.06.2019, 14:49 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 40
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Прикладываю файл примера)
К сообщению приложен файл: 5553643.xlsx(11.6 Kb)
 
Ответить
СообщениеПрикладываю файл примера)

Автор - rtv206
Дата добавления - 25.06.2019 в 14:49
rtv206 Дата: Вторник, 25.06.2019, 14:50 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 40
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
2. Не определено понятие дубликатов в разных столбцах - если в столбце Е значения а,в,в; в столбце F значения с,d,а, то понятно, что в - дубликат, но вот дубликат ли а?


Да, а тоже является дубликатом.
 
Ответить
Сообщение
2. Не определено понятие дубликатов в разных столбцах - если в столбце Е значения а,в,в; в столбце F значения с,d,а, то понятно, что в - дубликат, но вот дубликат ли а?


Да, а тоже является дубликатом.

Автор - rtv206
Дата добавления - 25.06.2019 в 14:50
_Boroda_ Дата: Вторник, 25.06.2019, 15:20 | Сообщение № 14
Группа: Модераторы
Ранг: Местный житель
Сообщений: 15578
Репутация: 6075 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Во, другое дело!
Так хотели?
[vba]
Код
Sub KolDub()
    c0_ = 5
    nc_ = Cells(1).SpecialCells(xlLastCell).Column - c0_ + 1
    If nc_ < 1 Then Exit Sub
    r0_ = 1
    nr_ = Cells(1).SpecialCells(xlLastCell).Row - r0_ + 1
    If nr_ < 1 Then Exit Sub
    ar = Cells(r0_, c0_).Resize(nr_, nc_)
    Set slov1 = CreateObject("Scripting.Dictionary")
    Set slov2 = CreateObject("Scripting.Dictionary")
    With slov1
        For i = 1 To nr_
            For j = 1 To nc_
                If Not IsEmpty(ar(i, j)) Then
                    If .exists(ar(i, j)) Then
                        z_ = z_ + 1
                        aaa = slov2.Item(ar(i, j))
                    Else
                        aaa = .Item(ar(i, j))
                    End If
                End If
            Next j
        Next i
    End With
    Cells(1, 2) = z_ + slov2.Count
End Sub
[/vba]
К сообщению приложен файл: 5553643_1.xlsm(19.1 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВо, другое дело!
Так хотели?
[vba]
Код
Sub KolDub()
    c0_ = 5
    nc_ = Cells(1).SpecialCells(xlLastCell).Column - c0_ + 1
    If nc_ < 1 Then Exit Sub
    r0_ = 1
    nr_ = Cells(1).SpecialCells(xlLastCell).Row - r0_ + 1
    If nr_ < 1 Then Exit Sub
    ar = Cells(r0_, c0_).Resize(nr_, nc_)
    Set slov1 = CreateObject("Scripting.Dictionary")
    Set slov2 = CreateObject("Scripting.Dictionary")
    With slov1
        For i = 1 To nr_
            For j = 1 To nc_
                If Not IsEmpty(ar(i, j)) Then
                    If .exists(ar(i, j)) Then
                        z_ = z_ + 1
                        aaa = slov2.Item(ar(i, j))
                    Else
                        aaa = .Item(ar(i, j))
                    End If
                End If
            Next j
        Next i
    End With
    Cells(1, 2) = z_ + slov2.Count
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 25.06.2019 в 15:20
rtv206 Дата: Четверг, 27.06.2019, 01:08 | Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 40
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, Спасибо огромное!
Буду тестировать))))
 
Ответить
Сообщение_Boroda_, Спасибо огромное!
Буду тестировать))))

Автор - rtv206
Дата добавления - 27.06.2019 в 01:08
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Подсчет количества дубликатов в столбце (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс цитирования
© 2010-2019 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!