Есть файл xlsx на 410000 строк К одному из столбцов нужно применить формулу =СЧЁТЕСЛИ(C$1:C3;C3) до конца документа
Запущенный процесс длится уже больше 10 часов на не слабом компьютере и уже несколько часов показывает состоянии "не отвечает" при 1% проценте загрузки процессора и плавающем использовании оперативной памяти от мегабайтов до 7 гигабайт и до 70 мб/c использования диска
Есть рекомендации как выполнить данную задачу ? [moder]Есть. См. первое предложение и требования в п. 3 тут
Есть файл xlsx на 410000 строк К одному из столбцов нужно применить формулу =СЧЁТЕСЛИ(C$1:C3;C3) до конца документа
Запущенный процесс длится уже больше 10 часов на не слабом компьютере и уже несколько часов показывает состоянии "не отвечает" при 1% проценте загрузки процессора и плавающем использовании оперативной памяти от мегабайтов до 7 гигабайт и до 70 мб/c использования диска
Есть рекомендации как выполнить данную задачу ? [moder]Есть. См. первое предложение и требования в п. 3 тутiven
Массив/словарь - т.е. макрос. Для условного файла: [vba]
Код
Sub tt() Dim a(), i&
a = Range("C1:C" & Range("C" & Rows.Count).End(xlUp).Row).Value ReDim b(1 To UBound(a), 1 To 1)
With CreateObject("Scripting.Dictionary"): .comparemode = 1 For i = 1 To UBound(a) .Item(a(i, 1)) = .Item(a(i, 1)) + 1 If i > 2 Then b(i, 1) = .Item(a(i, 1)) Next End With
[f1].Resize(UBound(b), 1) = b End Sub
[/vba]
Под свой подгоняйте теперь сами.
Массив/словарь - т.е. макрос. Для условного файла: [vba]
Код
Sub tt() Dim a(), i&
a = Range("C1:C" & Range("C" & Rows.Count).End(xlUp).Row).Value ReDim b(1 To UBound(a), 1 To 1)
With CreateObject("Scripting.Dictionary"): .comparemode = 1 For i = 1 To UBound(a) .Item(a(i, 1)) = .Item(a(i, 1)) + 1 If i > 2 Then b(i, 1) = .Item(a(i, 1)) Next End With
ламер в excel меня интересует возможно общий подход чтоб не напрягать никого с написанием макроса для нуба может есть какие-то оболочки или специализированные программы или может в openoffice быстрее обрабатывается и вообще описанное состояние выполнения обработки это нормально ? оно выполнится и раздуплится ? или процесс можно закрывать так как он займет недели ? или вообще считается зависшим ?
Присоединил кусок начала файла, ибо сам файл весит 50 метров, нужный столбец - последний
Цитата
Массив/словарь - т.е. макрос.
ламер в excel меня интересует возможно общий подход чтоб не напрягать никого с написанием макроса для нуба может есть какие-то оболочки или специализированные программы или может в openoffice быстрее обрабатывается и вообще описанное состояние выполнения обработки это нормально ? оно выполнится и раздуплится ? или процесс можно закрывать так как он займет недели ? или вообще считается зависшим ?
Присоединил кусок начала файла, ибо сам файл весит 50 метров, нужный столбец - последнийiven
Сообщение отредактировал iven - Пятница, 27.06.2014, 11:02
Думаю нормально. Но отвиснет ли - неизвестно. У Вас 410000 раз выполняется функция, которая в итоге столько же раз будет просматривать весь массив данных. И возможно пересчёт каждой функции вызывает пересчёт ещё кучи других функций (что уже видно в файле, с которым Вы опоздали).
Думаю нормально. Но отвиснет ли - неизвестно. У Вас 410000 раз выполняется функция, которая в итоге столько же раз будет просматривать весь массив данных. И возможно пересчёт каждой функции вызывает пересчёт ещё кучи других функций (что уже видно в файле, с которым Вы опоздали).Hugo
Да что там корректировать - вместо f1 укажите свой последний столбец. Ну и смотрю проверку на >2 можно вообще убрать (обманули ведь! а без проверки будет чуть быстрее работать) - а 1 в первой строке можно в конце удалить. Как угодно, хоть вручную.
Но конечно Ваши зависящие от этого столбца формулы после выполнения макроса начнут 410000 раз выполняться - но это уже другой вопрос, я за это не отвечаю
Да что там корректировать - вместо f1 укажите свой последний столбец. Ну и смотрю проверку на >2 можно вообще убрать (обманули ведь! а без проверки будет чуть быстрее работать) - а 1 в первой строке можно в конце удалить. Как угодно, хоть вручную.
Но конечно Ваши зависящие от этого столбца формулы после выполнения макроса начнут 410000 раз выполняться - но это уже другой вопрос, я за это не отвечаю Hugo
да хз что это вообще и для чего и такие вот однотипные данные до конца файла кузина попросила запустить у себя потому что у меня комп мощнее - видно не столь уж мощнее ) [moder]Наше дело предложить. Ваше - отказаться.
да хз что это вообще и для чего и такие вот однотипные данные до конца файла кузина попросила запустить у себя потому что у меня комп мощнее - видно не столь уж мощнее ) [moder]Наше дело предложить. Ваше - отказаться.iven
Сообщение отредактировал iven - Пятница, 27.06.2014, 11:56