|
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 66
|
|
Экспорт и последующий анализ данных spc09.09.2013, 16:41. Показов 8739. Ответов 126
Метки нет (Все метки)
приветствую!
программист я не очень)) но имеется желание облегчить себе жизнь) собственно суть: имеем файл базы данных spc (лог системы контроля параметров) во вложении, данный фаил содержит примерно сутки работы системы количество строк всегда 10002 количество столбцов при преобразовании может варьироваться необходимо: 1. наладить импорт из данного файла в таблицу Excel, ну или экспорт (с этим у меня пока самая большая проблема) предполагаю что в конечной таблице должна открываться юзерформа где можно указать путь к файлу из которого нужно взять данные при этом копируемые данные должны помещаться в начало листа 2.после переноса в основной файл должны ракладываться в нормальные столбцы и проверятся на ряд параметров : Во первых должны удалятся строки содержащие хотя бы одно 0 значение, во вторых в конце массива могут содержаться дубли уже внесенной ранее информции т.к. лог снимается вручную втретих нужно проводить проверку на наполнение листа т.е при достижении 1кк строк начинать новый лист. 3. на отдельном листе или в юзерформе создать группу графиков с изменяемым интервалом дат т.е забиваем дата/время начало-дата/время конец и получаем графическое отображение изменений данных параметров. собственно вопросы следующие: насколько это реализуемо средствами excel/vba как реализовать п 1. п.2 сейчас потихоньку делаю сам, хотя как конролировать наполнение листа тоже пока не представляю.
0
|
|
| 09.09.2013, 16:41 | |
|
Ответы с готовыми решениями:
126
Обработка множества документов word/pdf и последующий семантический анализ их содержимого
Поиск данных в текстовом файле и последующий вывод |
|
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
|
|
| 11.09.2013, 23:33 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 66
|
|
| 12.09.2013, 09:44 [ТС] | |
|
toiai, в том то и дело что когда прогоняем разложение столбца А руками все ОК получаем 2 столбца, а когда работает макрос получается 3.
Добавлено через 1 час 8 минут причем если отменить сделанные изменения, и запустить записанный макрорекордером макрос получаем опять 3 столбца
0
|
|
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|
| 12.09.2013, 10:55 | |
|
To Cortes1984. А не решает проблему настройка форматов даты системы? Или это родной Вам формат? Если да - тогда форматировать к нужному при вставке.
И у меня такой еще вопрос. Вы это все делаете для графиков. Графики у вас в пределах одних суток? Если да - не проблема. Есле период времени затягивает часть одной сутки и часть другой - нужен свой формат, или время в 00:00:00 тоже будет 0.
0
|
|
|
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 66
|
|
| 12.09.2013, 11:15 [ТС] | |
|
на работе вот так, дома в принципе тоже, родной формат времени 24 часовой, пишу слева направо
![]() я кстати опять искалку пустых ячеек сломал на этот раз в крайнем файле toiai.создал пустой файл, удалил 3 лист второй переименовал в DataLogSPC и перенес модуль с макросом, искалка не работает теперь)
0
|
|
|
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 66
|
||||||
| 12.09.2013, 12:13 [ТС] | ||||||
|
в общем путем длительного тыканья пальцем в небо получилось следующее:
Кликните здесь для просмотра всего текста
АМ/РМ все равно откуда то вылазит но теперь его не отрывает в отдельный столбец, а потом корректно переводит в 24ч.формат
0
|
||||||
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|
| 12.09.2013, 12:47 | |
|
Ребус какой-то. У меня системная дата как у Вас - но отображает нормально. Попробуйте поэкспериментировать. Выделите ячейку с "косой" датой. Ctrl + 1, число, (все форматы), там измените отображение (вверху будете видеть). Получится - все это запишите рекордером в макрос.
0
|
|
|
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 66
|
|
| 12.09.2013, 12:50 [ТС] | |
|
Igor_Tr, в том то и дело я уже эти форматы как только не менял, делим столбец в ручную все ОК
, отменяем изменения запускаем запись с макрорекордера лезет третий столбец с АМ/РМ.
0
|
|
|
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 66
|
|
| 12.09.2013, 13:20 [ТС] | |
|
в общем вот как это выглядит:
запускаем пошагово макрос из этого поста toiai останавливаемся на строке "Set WbCSV = ActiveWorkbook", перед нами разложенный на столбцы CSV. вариант1: в ручную в этом файле в ячейке А1 меняем / на пробел, вставляем пустой столбец справа от столбца А, выделяем столбец A проводим разделение на столбцы по пробелу, получаем результата как на рисунке. вариант2: выполняем код дальше до строки ".Columns(3).Delete"
0
|
|
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
||||||
| 12.09.2013, 13:25 | ||||||
|
Я уже плачу... Сильно.... Ничего не понимаю.... Выбрал ячейку, в которой дата моей системы. Включил рекондер. Вызвал формат ячейки. Выбрал "(все форматы)", в поле "Тип" руками записал (лень искать было) dd/mm/yyyy h:mm AM/PM. И получил. Вот макрос, и вот скины:
0
|
||||||
|
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 66
|
|
| 12.09.2013, 14:09 [ТС] | |
|
Igor_Tr,
если не сложно сделайте пожалуйста следующее: 1 откройте исходный файл DataLogSPC.csv (тот который одним столбцом) 2 вручную разделите его на столбцы по "," (нам сейчас сами значения не важны важен только результат в первом столбце) 3 включите запись макроса 4 выделите столбец А (ну или первый в зависимости от того какой у Вас стоит стиль ссылок) 5 проведите замену " "(пробел) на ";"(в целом не важно на что, я менял на ";"), посмотрите результат (у меня получается так "09.09.2013;;15:46:11") 6 завершите запись макроса 7 сделайте отмену автозамены 8 выполните записанный макрос и посмотрите результат.
0
|
|
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
||
| 12.09.2013, 14:56 | ||
Можна открыть из блокнота. Ctrl + A, Ctrl + C, и на листе Excel - Ctrl + V. Это в смысле чистоты эксперимента. Тут могу накрутить, и получу опять то, что мне нужно. Но самое главное - пункт 5. Зачем пробел на ";" ? Это для чего?
0
|
||
|
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 66
|
|
| 12.09.2013, 14:58 [ТС] | |
|
Igor_Tr, я открывал excel (просто 2 щелчком),";" для наглядности
0
|
|
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|
| 12.09.2013, 15:05 | |
|
Понятно. Но зачем пробел на ";"?
0
|
|
|
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 66
|
|
| 12.09.2013, 15:13 [ТС] | |
|
по сути мы производим замену разделителя столбцов с пробела на ";"
при работе руками мы получаем один сдвоенный разделитель следовательно если ConsecutiveDelimiter:=True то 2 столбца или если False то 3 столбца при работе макроса мы получаем, внезапно, 1 сдвоенный и один одинарный разделитель то есть 3 или 4 столбца соответственно.
0
|
|
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|
| 12.09.2013, 15:30 | |
|
Святая Мария!!!!
А Вы не пробовали указать для замены на ";" не один пробел (" ", или space(1)), а два пробела (" ", или space(2))? Попробуйте, на всякий...
0
|
|
|
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 66
|
|
| 12.09.2013, 15:35 [ТС] | |
|
при ручном разложении этого сделать нельзя (в смысле разложить по 2м пробелам), программно почему то не работало поэтому я сделал замену 2х пробелов на ";" и разделение по ней, в целом код работает, да и в общем вопрос не в том как это обойти, а почему так происходит.
собственно этот код так и делает
0
|
|
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|
| 12.09.2013, 15:39 | |
|
Думаю, потому, что система между датой и временем ставит два пробела сама.
0
|
|
|
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 66
|
|
| 12.09.2013, 15:42 [ТС] | |
|
Igor_Tr,
мы видим в ячейке 2 пробела и раскладываем по ним ячейку на две когда это делает excel получаем 2 столбца когда это делает VBA получаем 3 столбца почему?
0
|
|
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
||||||
| 12.09.2013, 16:00 | ||||||
|
Так понимаю, что Вы колете дату. А просто сделать? Весь ст. А загнать в двумерный массив и очистить (столбик). В массиве раскидать arr(i,1) - это дата, arr(i,2) - это время. Если нужно - там и форматировать. Добавить поле, закинуть массив.
Добавлено через 1 минуту На Ваше почему один ответ - ищите проблему в коде (или подходе к решению). Не получается так - пробуйте по другому. Дорог много. Добавлено через 13 минут Такое впечатление, что Вы сцепились с Excel на смерть. И как в классических фильмах, пока побеждает плохой Excel. ![]() Попробуйте вот это. В активной ячейке должна быть Ваша дата. Если делать в массиве - то это простая аналогия.
0
|
||||||
|
0 / 0 / 0
Регистрация: 01.09.2013
Сообщений: 66
|
|
| 12.09.2013, 16:02 [ТС] | |
|
Igor_Tr, мне кажется тут проблема даже не в коде (собственно код макрорекордером записан) а во взаимодействии Excel - VBA, ведь по факту получается что Excel и VBA видят разные значения в одной и той же ячейке, причем формат этой ячейки не принципиален я пробовал по всякому ее форматировать а результат был всегда один - время отображается неверно.
я пока остановился на таком варианте, сегодня уже исчезаю, надо и отдыхать изредка)))
0
|
|
| 12.09.2013, 16:02 | |
|
Чтение из файла данных и последующий вывод на экран в виде линейного однонаправленного списка Копирование строки. При вводе пробела программа пропускает последующий ввод данных
Как сделать экспорт данных из таблицы базы данных MSSQL 2008 в Excel на php? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|