Страницы: 1
RSS
Сбор данных из ячеек с заданным шагом
 
Имеется книга весом порядка 30 мб.
Нужно собрать на листе "Пресс n=3" данные из порядка 37 000 ячеек для дальнейшего анализа, собираю по заранее залитому фону.
Ячейки из которых ведётся сбор идут в строго определённом порядке. D8, D18, D28  
После запуска надстройки PLEX в заголовке окна отображается "Сборка данных с листов книги (Не отвечает). Курсор в виде часов.

Есть ли смысл ждать окончания или Excel подвис окончательно?
Как это узнать, может стоит подождать и сборка закончится через некоторое время?
Ждал более 30 минут, потом надоело.

В настройках включил задействовать все процессоры для вычисления.
В диспетчере загрузка процессора 18%, озу 200 мб.
Файл сохранён в xlbs.

Компьютер относительно мощный i7, 16gb озу.

1) Как ещё можно ускорить работу экселя?
2) Чтобы не использовать подвисающий Plex нужно писать макрос для сбора?  
Изменено: kolevchuk - 12.03.2018 14:49:33
 
Цитата
kolevchuk написал:
собираю по заранее залитому фону.
Не думаю, что это хорошее решение. Если собрать по ключу "КО А", то результат будет аналогичным. Кстати, а на каком листе результат посмотреть?
Неизлечимых болезней нет, есть неизлечимые люди.
 
TheBestOfTheBest, результат чего?  
 
Цитата
kolevchuk написал:
Чтобы не использовать подвисающий Plex нужно писать макрос для сбора?  
Может да, а может и нет. Если вы поясните что за сбор, станет более понятна задача.
По вопросам из тем форума, личку не читаю.
 
БМВ, на листе "Пресс n=3" из ячек D8, D18, D28 (шаг 10 строк) и так далее более чем 37000 раз.
Всю таблицу не вставлял из-за ограничений по весу.  
 
Цитата
kolevchuk написал:
результат чего?  
хм, результат действий/работы макроса/... что ожидаем в результате ?
Изменено: TheBestOfTheBest - 12.03.2018 13:44:12
Неизлечимых болезней нет, есть неизлечимые люди.
 
TheBestOfTheBest, пока только пробовал собрать при помощи Plex.
Если её запустить для сбора 370000 (приблизительно) значений в заголовке окна отображается "Сборка данных с листов книги (Не отвечает). Курсор в виде часов.
Ждал около получаса, надоело.
Снял задачу через диспетчер.  
 
Т.е. PLEX виноват?
Неизлечимых болезней нет, есть неизлечимые люди.
 
Цитата
kolevchuk написал:
Чтобы не использовать подвисающий Plex нужно писать макрос для сбора?  
в #6 решение без макроса и Plex, файл скопировать в C:\1, ПКМ - Обновить
Изменено: TheBestOfTheBest - 12.03.2018 15:06:10
Неизлечимых болезней нет, есть неизлечимые люди.
 
Цитата
TheBestOfTheBest написал:
Т.е. PLEX виноват?
А кто? :-)

kolevchuk,  Если вы собираете просто значения из указанных ячеек, то можно сделать это достаточно просто, без пометок цветом и прочими. Если у вас расчитывается по указанным формулам  для 37000 , то  уж =INDEX('Пресс n=3'!D:D;(ROW()-1)*10+8) точно справится. Это просто формула листа в ячейке первой строки и далее, кооторая берет с шагом 10 начиная с 8.
Изменено: БМВ - 12.03.2018 15:29:57
По вопросам из тем форума, личку не читаю.
 
Что дописать, чтобы копировать на новый лист?
Скрытый текст
Изменено: kolevchuk - 12.03.2018 18:48:22
 
Имена листов нужно указать:
Код
Sheets("Sheet1").Cells(i, 1) = Sheets("Пресс n=3").Cells(8 + (i - 1) * 10, 4)
 
kolevchuk, именно копировать, т.е. с форматами и пр.?
Код
Sub Копировать()
Dim i&, n&, a&
n = Sheets(1).UsedRange.Rows.Count 'измените название или индекс листа на нужный, название (имя) в кавычках
a = 2 'начальный номер строки на другом листе, куда вставляем отобранные данные
For i = 8 To n Step 10
  Sheets(2).Range("A" & a).Value = Sheets(1).Cells(i, 4).Value 'переносим только значения
  'Sheets(1).Cells(i, 4).Copy Sheets(2).Range("A" & a) 'полное копирование ячеек
  a = a + 1
Next i
End Sub
 
Anchoret, что-то не получается.

Скрытый текст
Изменено: kolevchuk - 12.03.2018 19:39:18
 
kolevchuk, переменная "n" за что у Вас отвечает, ну или как Вам кажется за что она отвечает? В моем примере в нее помещался номер последней используемой строки на листе с индексом 1.
 
Anchoret, разобрался. Спасибо.
Изменено: kolevchuk - 12.03.2018 19:53:13
Страницы: 1
Наверх