Подсчет количества дубликатов в столбце
_Boroda_
Дата: Понедельник, 09.12.2019, 15:57 |
Сообщение № 21
Группа: Админы
Ранг: Местный житель
Сообщений: 17016
Репутация:
6668
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
При этом, волею судеб _Boroda_, последние 4 столбца пустые
Хе-хе, а строка 532 и ниже? Тоже работа с листом, а потом с массивом. 0,34 сек [vba]Код
Sub KolDub1() t_ = Timer With Me.UsedRange: End With c0_ = 5 c_ = Cells(1).SpecialCells(xlLastCell).Column + 1 If c_ < c0_ Then Exit Sub r0_ = 1 nr_ = Cells(1).SpecialCells(xlLastCell).Row - r0_ + 1 If nr_ < 1 Then Exit Sub Application.ScreenUpdating = 0 cal_ = Application.Calculation Application.Calculation = 3 For i = 0 To c_ - c0_ - 1 Cells(r0_ + nr_ * i, c_).Resize(nr_) = Cells(r0_, c0_ + i).Resize(nr_).Value Next i With Me.Sort .SortFields.Add Key:=Cells(r0_, c0_ + i) .Apply End With n_ = Cells(Rows.Count, c0_ + i).End(3).Row ar = Cells(r0_, c0_ + i).Resize(n_) Cells(r0_, c0_ + i).Resize(n_).Clear With Me.UsedRange: End With For i = 1 To n_ - 1 If ar(i, 1) = ar(i + 1, 1) Then x_ = x_ + 1 If k_ = 0 Then x_ = x_ + 1 End If k_ = 1 Else k_ = 0 End If Next i Application.Calculation = cal_ Application.ScreenUpdating = 1 Cells(1, 2) = x_ Debug.Print "end " & Format(Timer - t_, "0.00") End Sub
[/vba] У меня он отрабатывает 1,13
При этом, волею судеб _Boroda_, последние 4 столбца пустые
Хе-хе, а строка 532 и ниже? Тоже работа с листом, а потом с массивом. 0,34 сек [vba]Код
Sub KolDub1() t_ = Timer With Me.UsedRange: End With c0_ = 5 c_ = Cells(1).SpecialCells(xlLastCell).Column + 1 If c_ < c0_ Then Exit Sub r0_ = 1 nr_ = Cells(1).SpecialCells(xlLastCell).Row - r0_ + 1 If nr_ < 1 Then Exit Sub Application.ScreenUpdating = 0 cal_ = Application.Calculation Application.Calculation = 3 For i = 0 To c_ - c0_ - 1 Cells(r0_ + nr_ * i, c_).Resize(nr_) = Cells(r0_, c0_ + i).Resize(nr_).Value Next i With Me.Sort .SortFields.Add Key:=Cells(r0_, c0_ + i) .Apply End With n_ = Cells(Rows.Count, c0_ + i).End(3).Row ar = Cells(r0_, c0_ + i).Resize(n_) Cells(r0_, c0_ + i).Resize(n_).Clear With Me.UsedRange: End With For i = 1 To n_ - 1 If ar(i, 1) = ar(i + 1, 1) Then x_ = x_ + 1 If k_ = 0 Then x_ = x_ + 1 End If k_ = 1 Else k_ = 0 End If Next i Application.Calculation = cal_ Application.ScreenUpdating = 1 Cells(1, 2) = x_ Debug.Print "end " & Format(Timer - t_, "0.00") End Sub
[/vba] У меня он отрабатывает 1,13_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение При этом, волею судеб _Boroda_, последние 4 столбца пустые
Хе-хе, а строка 532 и ниже? Тоже работа с листом, а потом с массивом. 0,34 сек [vba]Код
Sub KolDub1() t_ = Timer With Me.UsedRange: End With c0_ = 5 c_ = Cells(1).SpecialCells(xlLastCell).Column + 1 If c_ < c0_ Then Exit Sub r0_ = 1 nr_ = Cells(1).SpecialCells(xlLastCell).Row - r0_ + 1 If nr_ < 1 Then Exit Sub Application.ScreenUpdating = 0 cal_ = Application.Calculation Application.Calculation = 3 For i = 0 To c_ - c0_ - 1 Cells(r0_ + nr_ * i, c_).Resize(nr_) = Cells(r0_, c0_ + i).Resize(nr_).Value Next i With Me.Sort .SortFields.Add Key:=Cells(r0_, c0_ + i) .Apply End With n_ = Cells(Rows.Count, c0_ + i).End(3).Row ar = Cells(r0_, c0_ + i).Resize(n_) Cells(r0_, c0_ + i).Resize(n_).Clear With Me.UsedRange: End With For i = 1 To n_ - 1 If ar(i, 1) = ar(i + 1, 1) Then x_ = x_ + 1 If k_ = 0 Then x_ = x_ + 1 End If k_ = 1 Else k_ = 0 End If Next i Application.Calculation = cal_ Application.ScreenUpdating = 1 Cells(1, 2) = x_ Debug.Print "end " & Format(Timer - t_, "0.00") End Sub
[/vba] У меня он отрабатывает 1,13Автор - _Boroda_ Дата добавления - 09.12.2019 в 15:57
bmv98rus
Дата: Понедельник, 09.12.2019, 16:08 |
Сообщение № 22
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4149
Репутация:
772
±
Замечаний:
0% ±
Excel 2013/2016
У меня он отрабатывает 1,13
Сааш, ну так разные машины. Я на ноутбучике 6ти- 7ми летнем проверял ( I5) . на рабочем, допотопный I7 2012года 1,5 показал.
У меня он отрабатывает 1,13
Сааш, ну так разные машины. Я на ноутбучике 6ти- 7ми летнем проверял ( I5) . на рабочем, допотопный I7 2012года 1,5 показал.bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Сообщение отредактировал bmv98rus - Понедельник, 09.12.2019, 16:09
Ответить
Сообщение У меня он отрабатывает 1,13
Сааш, ну так разные машины. Я на ноутбучике 6ти- 7ми летнем проверял ( I5) . на рабочем, допотопный I7 2012года 1,5 показал.Автор - bmv98rus Дата добавления - 09.12.2019 в 16:08
_Boroda_
Дата: Понедельник, 09.12.2019, 16:36 |
Сообщение № 23
Группа: Админы
Ранг: Местный житель
Сообщений: 17016
Репутация:
6668
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
Ну дык ясен пень. Я к тому написал про 1,13, чтобы 0,34 сравнивать не с 2,22, а с 1,13
Ну дык ясен пень. Я к тому написал про 1,13, чтобы 0,34 сравнивать не с 2,22, а с 1,13_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Ну дык ясен пень. Я к тому написал про 1,13, чтобы 0,34 сравнивать не с 2,22, а с 1,13Автор - _Boroda_ Дата добавления - 09.12.2019 в 16:36
RAN
Дата: Понедельник, 09.12.2019, 16:58 |
Сообщение № 24
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Вспылил, был не прав. Смотрел только начало массива.
Вспылил, был не прав. Смотрел только начало массива.RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение Вспылил, был не прав. Смотрел только начало массива.Автор - RAN Дата добавления - 09.12.2019 в 16:58
bmv98rus
Дата: Понедельник, 09.12.2019, 17:29 |
Сообщение № 25
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4149
Репутация:
772
±
Замечаний:
0% ±
Excel 2013/2016
Ок. В последнем варианте разве что ограничение по строкам листа есть, а так , да. с сортированным массивом все проще, в разы.
Ок. В последнем варианте разве что ограничение по строкам листа есть, а так , да. с сортированным массивом все проще, в разы. bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение Ок. В последнем варианте разве что ограничение по строкам листа есть, а так , да. с сортированным массивом все проще, в разы. Автор - bmv98rus Дата добавления - 09.12.2019 в 17:29
rtv206
Дата: Понедельник, 09.12.2019, 20:54 |
Сообщение № 26
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
bmv98rus , RAN , _Boroda_ , Спасибо Вам огромное за такое активное решение проблемы))) Каждый из предложенных способов буду пробовать)) Еще раз огромное человеческое СПАСИБО!
bmv98rus , RAN , _Boroda_ , Спасибо Вам огромное за такое активное решение проблемы))) Каждый из предложенных способов буду пробовать)) Еще раз огромное человеческое СПАСИБО!rtv206
Ответить
Сообщение bmv98rus , RAN , _Boroda_ , Спасибо Вам огромное за такое активное решение проблемы))) Каждый из предложенных способов буду пробовать)) Еще раз огромное человеческое СПАСИБО!Автор - rtv206 Дата добавления - 09.12.2019 в 20:54
bmv98rus
Дата: Понедельник, 09.12.2019, 21:23 |
Сообщение № 27
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4149
Репутация:
772
±
Замечаний:
0% ±
Excel 2013/2016
rtv206 , только про кросы не забывайте писать. Я то ладно, подправить 6 строк - не велика заслуга, а вот _Boroda_ время тратил.
rtv206 , только про кросы не забывайте писать. Я то ладно, подправить 6 строк - не велика заслуга, а вот _Boroda_ время тратил.bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение rtv206 , только про кросы не забывайте писать. Я то ладно, подправить 6 строк - не велика заслуга, а вот _Boroda_ время тратил.Автор - bmv98rus Дата добавления - 09.12.2019 в 21:23
rtv206
Дата: Четверг, 12.12.2019, 21:48 |
Сообщение № 28
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
_Boroda_ , bmv98rus , Ваши решения в сообщения №21 и 22- дают утешительное значение по времени) Спасибо огромное!!!
_Boroda_ , bmv98rus , Ваши решения в сообщения №21 и 22- дают утешительное значение по времени) Спасибо огромное!!!rtv206
Ответить
Сообщение _Boroda_ , bmv98rus , Ваши решения в сообщения №21 и 22- дают утешительное значение по времени) Спасибо огромное!!!Автор - rtv206 Дата добавления - 12.12.2019 в 21:48
rtv206
Дата: Четверг, 19.12.2019, 11:11 |
Сообщение № 29
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
_Boroda_ , bmv98rus , подскажите, пожалуйста, вставляю Ваши макросы в форму и выдает ошибку: "Compile error/ Method or data member not found. Что делаю не так?
_Boroda_ , bmv98rus , подскажите, пожалуйста, вставляю Ваши макросы в форму и выдает ошибку: "Compile error/ Method or data member not found. Что делаю не так?rtv206
Ответить
Сообщение _Boroda_ , bmv98rus , подскажите, пожалуйста, вставляю Ваши макросы в форму и выдает ошибку: "Compile error/ Method or data member not found. Что делаю не так?Автор - rtv206 Дата добавления - 19.12.2019 в 11:11
_Boroda_
Дата: Четверг, 19.12.2019, 11:13 |
Сообщение № 30
Группа: Админы
Ранг: Местный житель
Сообщений: 17016
Репутация:
6668
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Не показываете форму Автор - _Boroda_ Дата добавления - 19.12.2019 в 11:13
rtv206
Дата: Четверг, 19.12.2019, 11:20 |
Сообщение № 31
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Ответить
Сообщение Автор - rtv206 Дата добавления - 19.12.2019 в 11:20
_Boroda_
Дата: Четверг, 19.12.2019, 11:40 |
Сообщение № 32
Группа: Админы
Ранг: Местный житель
Сообщений: 17016
Репутация:
6668
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
Для формы Me - это форма, а Вы пишете (и в моем макросе писалось) как для листа. Замените все Me на ActiveSheet
Для формы Me - это форма, а Вы пишете (и в моем макросе писалось) как для листа. Замените все Me на ActiveSheet _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Для формы Me - это форма, а Вы пишете (и в моем макросе писалось) как для листа. Замените все Me на ActiveSheet Автор - _Boroda_ Дата добавления - 19.12.2019 в 11:40
rtv206
Дата: Четверг, 19.12.2019, 11:48 |
Сообщение № 33
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
_Boroda_ , Спасибо огромное)))
_Boroda_ , Спасибо огромное)))rtv206
Ответить
Сообщение _Boroda_ , Спасибо огромное)))Автор - rtv206 Дата добавления - 19.12.2019 в 11:48
rtv206
Дата: Четверг, 19.12.2019, 12:47 |
Сообщение № 34
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
_Boroda_ , не правильно подсчитывает количество дубликатов. Должно быть 58 а пишет 200
_Boroda_ , не правильно подсчитывает количество дубликатов. Должно быть 58 а пишет 200rtv206
Ответить
Сообщение _Boroda_ , не правильно подсчитывает количество дубликатов. Должно быть 58 а пишет 200Автор - rtv206 Дата добавления - 19.12.2019 в 12:47
_Boroda_
Дата: Четверг, 19.12.2019, 15:04 |
Сообщение № 35
Группа: Админы
Ранг: Местный житель
Сообщений: 17016
Репутация:
6668
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
Во как, похоже, зависит от версии Excel. В 2010 диапазон подхватывался сам, а в 2013 не хочет. В сортировке добавьте строку SetRange [vba]Код
With ActiveSheet.Sort .SortFields.Add Key:=Cells(r0_, c0_ + i) .SetRange Cells(r0_, c0_ + i).Resize(nr_ * (c_ - c0_)) .Apply End With
[/vba]
Во как, похоже, зависит от версии Excel. В 2010 диапазон подхватывался сам, а в 2013 не хочет. В сортировке добавьте строку SetRange [vba]Код
With ActiveSheet.Sort .SortFields.Add Key:=Cells(r0_, c0_ + i) .SetRange Cells(r0_, c0_ + i).Resize(nr_ * (c_ - c0_)) .Apply End With
[/vba] _Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Во как, похоже, зависит от версии Excel. В 2010 диапазон подхватывался сам, а в 2013 не хочет. В сортировке добавьте строку SetRange [vba]Код
With ActiveSheet.Sort .SortFields.Add Key:=Cells(r0_, c0_ + i) .SetRange Cells(r0_, c0_ + i).Resize(nr_ * (c_ - c0_)) .Apply End With
[/vba] Автор - _Boroda_ Дата добавления - 19.12.2019 в 15:04
rtv206
Дата: Четверг, 19.12.2019, 16:10 |
Сообщение № 36
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
_Boroda_ , Спасибо большое за помощь! Буду пробовать
_Boroda_ , Спасибо большое за помощь! Буду пробоватьrtv206
Ответить
Сообщение _Boroda_ , Спасибо большое за помощь! Буду пробоватьАвтор - rtv206 Дата добавления - 19.12.2019 в 16:10
rtv206
Дата: Суббота, 25.01.2020, 11:40 |
Сообщение № 37
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Добрый день! Прошу помощи- скачал файл с сообщения 36, когда открываю выскакивает ошибка: Ошибка в части содержимого в книге 0919900_2.xlsm. Выполнить попытку восстановления?...... Что это может быть?
Добрый день! Прошу помощи- скачал файл с сообщения 36, когда открываю выскакивает ошибка: Ошибка в части содержимого в книге 0919900_2.xlsm. Выполнить попытку восстановления?...... Что это может быть? rtv206
Ответить
Сообщение Добрый день! Прошу помощи- скачал файл с сообщения 36, когда открываю выскакивает ошибка: Ошибка в части содержимого в книге 0919900_2.xlsm. Выполнить попытку восстановления?...... Что это может быть? Автор - rtv206 Дата добавления - 25.01.2020 в 11:40
RAN
Дата: Суббота, 25.01.2020, 18:53 |
Сообщение № 38
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Поломанный файл.
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение Поломанный файл. Автор - RAN Дата добавления - 25.01.2020 в 18:53
rtv206
Дата: Суббота, 25.01.2020, 20:29 |
Сообщение № 39
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
RAN , Спасибо
Ответить
Сообщение RAN , СпасибоАвтор - rtv206 Дата добавления - 25.01.2020 в 20:29
RAN
Дата: Воскресенье, 26.01.2020, 09:15 |
Сообщение № 40
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Да все так, окромя того, что вы пытаетесь вставить данные в диапазон D916008:D1145008
Да все так, окромя того, что вы пытаетесь вставить данные в диапазон D916008:D1145008 RAN
Быть или не быть, вот в чем загвоздка!
Ответить
Сообщение Да все так, окромя того, что вы пытаетесь вставить данные в диапазон D916008:D1145008 Автор - RAN Дата добавления - 26.01.2020 в 09:15