Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 След.
Правила условного форматирования для мониторинга цены
 
Нет, однако развивает мелкую моторику!
Правила условного форматирования для мониторинга цены
 
Любая задача имеет несколько решений, одно оптимально, другое нет. В моем случае разве результат не достигнут?
Обработка больших массивов содержащих формулы, оптимизировать работу кода
 
Цитата
kuklp написал: Я не очень понимаю каким условиям
Вот и я тоже пока не понимаю! Если пойму условие то в нем сразу исчезнет необходимость, т.к. сразу станет понятно как появляется эта ошибка какая взаимосвязь между определенными записями вызывает их повторение! На "железо" грешить бесполезно, уже не раз меняли!
Правила условного форматирования для мониторинга цены
 
Ссылка должна быть абсолютной $! Так что ручками каждую строку!
Правила условного форматирования для мониторинга цены
 
  Вам необходимо применить условное форматирование не к таблице, а к каждой строке.
Условие1
Значение Равно =МИН($L$12:$W$12) и выбирайте необходимый цвет
З.Ы. если примените условное форматирование ко всей таблице и получите минимальное значение во всей таблице, а Вам, как понимаю, необходимо выбирать минимальные значения в строке? Смотрите правило условного форматирования в 12 строке Вашей таблицы.
Изменено: Влад Турбин - 12.11.2016 22:37:29
Обработка больших массивов содержащих формулы, оптимизировать работу кода
 
Вот так и начиналась дружба Пьера Безухова и Андрея Болконского!
Спасибо, таблицы стали обрабатываться гораздо быстрее.
З.Ы. правда удаляет чуть больше чем нужно, но уже допилил!
Если ни кому нет интереса, тема закрыта!
Обработка больших массивов содержащих формулы, оптимизировать работу кода
 
Как я понимаю, мне каждый раз придется переписывать код, т.к. уже на второй итерации мне необходимо осуществлять выбор, какие данные оставлять, какие сохранять, т.к. не получив промежуточного результата я не могу определить по каким столбцам копаться дальше и что сравнивать на совпадение и на несовпадение.
К примеру:
в столбце 1 записано время события, в столбце 3 номер магнитной карты которая вызвала это событие
встречаются записи об одном и том же событии (время естественно совпадает до секунды), по видеокамере я вижу что это одно и тоже событие, т.е. других событий в это время не было (видео естественно синхронизировано по времени),
так-вот о событии три записи:
Первая запись 01.11.2016 12-30.45 карта № 12345 (и дальше еще куча информации записана в ячейках этой строки)
Вторая запись  01.11.2016 12-30.45 карта не читается (и дальше еще куча информации записана в ячейках этой строки)
Третья запись  01.11.2016 12-30.45 карта № 12345 (и дальше еще куча информации записана в ячейках этой строки которая может или совпадать или не совпадать с первыми двумя записями)
Если в случае, указанном в примере, можно хоть как-то сделать предположение, что ошибка связанная с этой записью состоит в том, что посетитель возможно задержал карту у считывателя (хотя это нереально т.к. карта выдается диспенсером и проходит через считыватель с постоянной скоростью и в одном и том же положении), то данные записывающиеся в ячейки других столбцов ни как не связаны с прохождением карты мимо считывателя.
Чтобы ворочать данные в массиве надо четко знать по каким критериям их ворочать! А я определяю критерий только тогда, когда проведу анализ полученных результатов!
Обработка больших массивов содержащих формулы, оптимизировать работу кода
 
Да в том-то и дело что мне не надо ОДНОЗНАЧНО удалять записи при несовпадении данных!
ПРИМЕР:
Итерация первая: сравниваются столбцы 1, 12 - строки сохраняются если в смежных ячейках столбцов 1 и 12 записи идентичны
Итерация вторая: в полученной выборке сравниваются столбцы 8 и 10, в случае если в столбце 8 значения идентичны сравниваются столбцы 22 и 24, а если идентичны в столбце 10, то сравнивается содержимое столбцов 15 и18 и удаляются все строки в которых нет одинаковых значений в смежных ячейках столбцов 22 и 24 в одном случае, а в другом случае удаляются строки если в смежных ячейках столбцов 15 и 18 записи одинаковы.
Итерация третья: полученный результат обрабатывается аналогично, только обрабатываются столбцы 2, 4, 13 и в зависимости от результата сравнения данных в этих столбцах выбираются столбцы в которых необходимо провести следующее сравнение.
Номера столбцов даны в качестве примера.
Я пока дальше второй итерации не заходил.
Надо обработать данные за год, а размер выгруженных данных за 2 недели - это таблица в 60 тысяч строк!
Обработка больших массивов содержащих формулы, оптимизировать работу кода
 
Извините, но я отвечал, мне не подходит сравнение диапазона А1:Х!
Сравниваются значения, содержащиеся в смежных ячейках находящихся в определенных столбцах допустим С, E, H, T. и в зависимости от полученного результата, необходимо в полученном результате опять провести сравнение в одном случае, допустим, в столбцах D, G, Y, а в другом случае это может быть в столбцах A, F, W, критерий по которому будет проходить второе и последующее сравнение зависит от результата предыдущего! Я пытаюсь понять почему возникает ошибка (или при выгрузке данных из БД в эксель или при записи данных в БД сторонним ПО), систему по которой происходит дублирование некоторых записей. Запись представляет из себя строку в ячейки которой заносятся различные параметры, запись производится по определенному событию. То, что в двух смежных строках записаны данные об одном и том же событии подтверждается видеонаблюдением, проблема в том, что запись дублируется не полностью т.е. в двух смежных строках в некоторых ячейках значения идентичны, а в некоторых отличаются (ПРИ ЭТОМ СОБЫТИЕ ПРОИСХОДИТ ОДНО!!! А ЗАПИСЕЙ ДВЕ!!! И ИНОГДА ТРИ!!!!!), при чем эти некоторые, отличающиеся  ячейки могут находится в разных столбцах.
Обработка больших массивов содержащих формулы, оптимизировать работу кода
 
Использовать фильтры и автофильтры я пытался, фильтр скрывает строки или делает высоту строки = 0 (я сначала пытался решить проблему удаления строк именно с помощью автофильтра - скрывал строки и удалял скрытые строки или те, высота которых = 0 с помощью макроса, тормозило еще больше. Если фильтровать по значению и копировать то копируется вся таблица, если использовать расширенный фильтр, у которого встроена возможность "скопировать результат в другое место", то Эксель ругается и говорит, что копирование возможно только на тот же лист из которого берутся данные!
А про диапазон Union можно поподробнее, как для чайника?!
Обработка больших массивов содержащих формулы, оптимизировать работу кода
 
Проблема в том, что удаление строк происходит медленно и вопрос был как ускорить работу макроса, который удаляет строку по значению в ячейке, из таблицы с большим количеством строк, в случае если условие по которому удаляется строка записано в ячейку с помощью функций.
Строки ОБЯЗАТЕЛЬНО должны удаляться!
Вопрос: можно ускорить или нельзя, если можно, прошу помочь!
Автоматическая простановка даты при открытии файла
 
В нужную Вам ячейку вставьте эту функцию  =ТДАТА() и сохраните файл, ячейку отформатируйте так, как вам необходимо 03.05.16г. или 03 мая 2016г.
Макрос для вставки строки если ячейка содержит слово
 
Код
Sub Макрос1()
Set Sheet = ActiveSheet
    For Each Row In Sheet.UsedRange.Rows
        If Row.Cells(1) Like "èòîã" Then Row.Resize(1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        Next
End Sub
Обработка больших массивов содержащих формулы, оптимизировать работу кода
 
Помедленнее:
Дано:
1.БД созданная с помощью специального ПО из которой выгружаются (импортируются) данные в файл Эксель, данные можно выгрузить только на один лист Экселя.
2. Или при выгрузке данных из БД в Эксель, или при записи данных в БД специальном ПО возникает ошибка - некоторые записи дублируются но не полностью т.е. нельзя просто взять и сравнить строки.
3. Выгруженные данные имеют форму таблицы, состоящей из 30 000 - 60 000 строк и 29 столбцов (в файле примера таблица не полная, столбцов меньше)
Требуется:
Провести анализ значений по разным критериям, таким как: совпадениям значений в определенных смежных ячеек или не совпадений значений в одних ячейках и совпадений в других. Т.к. пока не понятно почему одни записи дублируются, а другие нет, невозможно точно сказать, что макрос должен сравнивать значения в ячейках расположенных, допустим, в столбцах А В С на совпадение, а в ячейках столбцов D E F на несовпадение. Т.е. после обработки таблицы с помощью функций "И(ИЛИ", полученный результат необходимо сравнить по другим критериям (опять же на совпадение или не совпадение). Следовательно я не могу точно определить (пока не получу результат первого сравнения) ячейки в каких столбцах я должен сравнивать. Поэтому, для сравнения значений в ячейках используется формула. Из-за того, что таблица имеет большое количество строк, ковыряться в ней ища строки, которые отобраны по заданным критериям используя перемещение с помощью движка или курсора нереально! Поэтому макросом строки удаляются. Пытался использовать и условное форматирование+автофильтр (при этом скрываются подходящие или не подходящие по условиям строки) но строки-то скрываются, а при изменении функции сравнения или вставке функций "И(ИЛИ" в другие ячейки обрабатывается вся таблица целиком включая и скрытые ячейки. Т.е. мне надо обработать таблицу, получить результат и обработать этот результат в зависимости от того что я увижу.
ПОЭТОМУ мне просто нужен макрос обрабатывающий большие массивы с формулами т.к. я не могу до получения результатов от первого сравнения сказать что мне необходимо сравнивать дальше!
Обработка больших массивов содержащих формулы, оптимизировать работу кода
 
Кнопка цитирования не для ответа [МОДЕРАТОР]

Уважаемые форумчане! Мне не нужно сравнивать значения (это выполняется с помощью функций "И(ИЛИ"), мне нужно только:
- или оптимизировать код чтобы при обработке массивов содержащих формулы макрос выполнялся быстрее;
- или сказать, что это невозможно.
Обработка больших массивов содержащих формулы, оптимизировать работу кода
 
И последнее! Проводящийся анализ выгружаемых из ERP данных необходим для определения возникающей системной ошибки, т.е. записи в выгружаемой таблице изначально не должны дублироваться. Дублирующиеся записи - это ошибка, и тут необходимо выяснить является-ли это ошибка специализированного ПО при обработке и выгрузке данных или это ошибка железа этой ERP (считыватели, стойки, шлагбаумы)
Обработка больших массивов содержащих формулы, оптимизировать работу кода
 
Цитата
vikttur написал: миллионы строк можно обрабатывать, получив массив из других приложений, и выгружать в Excel или на разные листы, или в несколько столбцов
К сожалению используемая ERP не позволяет выгружать данные так, как Вы предлагаете.
Обработка больших массивов содержащих формулы, оптимизировать работу кода
 
Я уже предлагал название "Обработка больших массивов содержащих формулы"
Основное условие: Ускорить работу макроса при обработке больших массивов содержащих формулы в смежных ячейках не смежных столбцах!
Это необходимо для разностороннего анализа данных в таблице, при чем, анализ может проводится по разным диапазонам данных.
Изначально дано: Массив данных в котором ячейки, содержащиеся в столбцах С, E, H, T проверяются на совпадение значений в смежных ячейках с помощью функции "ЕСЛИ(И" и "ЕСЛИ(ИЛИ", совпадают-ли значения в ячейке С8 с ячейкой С9, С9 сравнивается с С10, Е8 с Е9, Е9 с Е10 и т.д. При этом, в массиве не обязательно, при совпадении значений С9 и С10 совпадут Н9 и Н10, т.е. условия по котором строка сохраняется - это полное совпадение значений в 4 смежных ячейках, расположенных в НЕСМЕЖНЫХ столбцах С, E, H, T.
Строки, в которых это совпадение 100% сохраняются, остальные удаляются.
В зависимости от ЗАДАЧИ поставленной перед пользователем, который проводит анализ с помощью функций "ЕСЛИ(И" и "ЕСЛИ(ИЛИ", совпадают-ли значения в смежных ячейках не смежных столбцов, (это не обязательно могут быть столбцы С, E, H, T) макрос должен из большого массива данных удалять только те строки, определенным ячейкам в которых, с помощью функций  "ЕСЛИ(И" и "ЕСЛИ(ИЛИ" присвоены значения "УДАЛИТЬ" или "ОСТАВИТЬ"
Обработка больших массивов содержащих формулы, оптимизировать работу кода
 
Уважаемый vikttur!
Тема название которой Вы поменяли в первый раз более соответствовало моим  критериям. Мне действительно необходимо обрабатывать большие массивы  содержащие формулы и при этом ускорить обработку массива макросом, чем  то название, которое тема имеет сейчас "При несовпадении данных в  смежных строках эти строки удалять". Мне необходимо из таблицы, в одном  случае, получать выборку по совпадающим данным, а в другом случае  удалять одну из строк с совпадающими данными.
Обработка больших массивов содержащих формулы, оптимизировать работу кода
 
Цитата
kalbasiatka написал: Те, кто имеет дело с миллионами строк сейчас улыбнулись
Ну не с миллионами! А что, в Excel есть возможность создать таблицу с 1 048 577 строк? Я всегда думал, что количество строк ограничено!
Обработка больших массивов содержащих формулы, оптимизировать работу кода
 
Нет, сравниваются только значения, содержащиеся в ячейках находящихся в столбцах С, E, H, T.
Изменено: Влад Турбин - 09.11.2016 20:56:36 (Грамматическая ошибка)
Обработка больших массивов содержащих формулы, оптимизировать работу кода
 
Файл с макросом вложен!
Обработка больших массивов содержащих формулы, оптимизировать работу кода
 
Добрый день, столкнулся с проблемой при обработке больших таблиц. Есть БД, данные их которой выгружаются в EXCEL, на листе формируется таблица состоящая из 60 тысяч строк (иногда меньше - до 30 тысяч) и содержащая 20-25 столбцов. В этой таблице необходимо в смежных сроках сравнивать ячейки и если эти ячейки совпадают, то эти строки сохранять, остальные удалять!
Написал 2 макроса, все работает, только если строк в таблице не более 10-15 тысяч, если больше - все ужасно тормозит, макрос выполняется час и более.Можно-ли это как-то решить.
P.S. все что может тормозить процесс из таблицы убрано имхо как: очищены форматы во всей таблице, убраны все возможные автофильтры, файл сохраняется как двоичная книга.
Изменено: Влад Турбин - 09.11.2016 20:57:33
Помогите с возможностью случайного выбора!
 
Всем спасибо!
Помогите с возможностью случайного выбора!
 
Со скрытым листом, тоже идея. Работает!  
 
Sub test()  
Цитаты = Array(Shets("Лист1").Range("A1").Value, Shets("Лист1").Range("A2").Value, Shets("Лист1").Range("A3").Value, Shets("Лист1").Range("A4").Value, Shets("Лист1").Range("A5").Value, Shets("Лист1").Range("A6").Value, Shets("Лист1").Range("A7").Value, Shets("Лист1").Range("A8").Value, Shets("Лист1").Range("A9").Value, Shets("Лист1").Range("A10").Value, Shets("Лист1").Range("A11").Value, Shets("Лист1").Range("A12").Value)  
 
СлучайнаяЦитата = Цитаты(Fix(Rnd(1) * (UBound(Цитаты) + 1)))  
MsgBox СлучайнаяЦитата, vbInformation, "МОЁ ОКНО"  
 
End Sub
Помогите с возможностью случайного выбора!
 
LightZ:  
:) для развлечения Юзеров, проводящих все свое время за работой!
Помогите с возможностью случайного выбора!
 
LightZ:  
Цитаты длинные, в Array() есть ограничение по количетву знаков, поэтому разбито на Цитата1, Цитата2 и т.д.
Помогите с возможностью случайного выбора!
 
Добрый день.  
Необходимо при открытии Книги Excel автоматически запускать макрос, который случайным образом выбирает цитату и в дальнейшем, в определеный интервал времени случайным образом выбирать следующую цитату. В файле примера интервал задан 15 секунд. Однако не происходит случайного выбора, только частичный случайный выбор (из 3 варианта случайных цитат)
DataForm всплывающая подсказка?
 
Добрый день!  
Существует-ли способ, чтобу при наведении курсора мыши на Textbox в Dataform (Данные - Форма) созданном из таблицы появлялась всплывающая подсказка?
Формат даты предыдущий месяц
 
Добрый день!  
Подскажите!  
Необходимо макросом создавать папку и присваивать ей имя состояшее из даты в формате mmmm.yyyy + текст, однако mmmm - должен быть предыдущим. Т.е. если папка создается в сентябре, то имя ей присваивается август и т.д.  
 
Sub Создание_папки()  
Dim PathToSave As String, FolderName As String, FellPathToSave As String  
Dim fs As Object  
PathToSave = "C:\"  
FolderName = CStr(Format(Now, "mmmm.yyyy") & "Электроэнергия")  
FellPathToSave = PathToSave & FolderName & "\"  
Set fs = CreateObject("Scripting.FileSystemObject")  
If Not fs.FolderExists(FellPathToSave) Then  
  fs.CreateFolder (FellPathToSave)  
End If  
End Sub
Страницы: 1 2 3 След.
Наверх