Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
24.04.2024, 23:52:31

Войти
Название темы должно отражать её содержание.
Темы типа "ПОМОГИТЕ!!!", "Срочно!", "Не получается сделать", "Нужна помощь" и т.п. будут удаляться без объяснения причин
33 242 Сообщений в 5 457 Тем от 6 761 Пользователей
Последний пользователь: Halfdoor
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Прочие форумы
| |-+  Заказы на написание макросов, работа для специалистов по Excel и VBA и пр.
| | |-+  Написание макроса для обработки/сокращения столбца чисел.
Страниц: [1]   Вниз
Печать
Автор Тема: Написание макроса для обработки/сокращения столбца чисел.  (Прочитано 4027 раз)
0 Пользователей и 1 Гость смотрят эту тему.
viktorsu
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 2


Просмотр профиля
« : 05.06.2020, 22:04:46 »

Доброго времени суток,

описание постановки задачи:
Есть такие столбцы чисел. В первом столбце идет время (это значения по горизонтальной оси). Дальше идут колонки (значений для вертикальных осей). Таких колонок может быть несколько.

Проблема: значений очень много. Намного больше, чем, чем нужно для описания графика. То есть время меняется всегда, а значения могут.

Решение, как я вижу: нужно сократить число ячеек.

Теоретический пример.
Есть прямая. Для описания прямой достаточно только двух точек. А точек не две а 10 000. Макрос должен работать так. Считывает первые две точки (время и сами значения). Макрос сравнивает два значения. Если значения одинаковые или отличаются меньше, чем на заданную величину, то макрос выбрасывает вторую точку и считывает третью. Если значения первой и второй точки отличаются, то макрос сохраняет обе точки рядом справа (справа). Так макрос переберет все 10 000 значений, и если это прямая линия, то оставить только две точки и сохранит их рядом.

Сколько будет стоить написание такого макроса и время. Пожалуйста в личку. А вопросы по заданию лучше в форум.

Ниже два реальных примера.

Второй пример посложнее. Там нужно дополнительно сделать предварительные шаги.
1. Дату вообще удалить.
2. Запись в примере 2 идет не с начала файла, а с конца (начальное время не в начале файла, а в конце). Нужно переписать наоборот.
3. Время перевести в формат секунд. Эксель не может воспринимать формат часы:минуты:секунду:милисекунды. Поэтому нужно время перевести в секунды. Тогда будет нормально. И для удобства начальный момент времени взять ноль.
Исходный файл (фрагмент, конец):
28-Dec-1960 08:06:47.05101   24.46
28-Dec-1960 08:06:47.02501   24.52
28-Dec-1960 08:06:47.00101   24.62
28-Dec-1960 08:06:46.97501   24.78

Полученный файл (этот же фрагмент, начало нового файла или в экселе рядом)
0.97501   24.78
1.00101   24.62
1.02501   24.52
1.05101   24.46


Записан
Юрий М
Глобальный модератор
Ветеран
*****

Репутация: +112/-0
Офлайн Офлайн

Сообщений: 2 077



Просмотр профиля E-mail
« Ответ #1 : 06.06.2020, 01:16:17 »

Тендер:
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=7&TID=129504&TITLE_SEO=129504-napisanie-makrosa-dlya-obrabotkisokrashcheniya-stolbtsa-chisel&MID=1063120#message1063120
Записан
viktorsu
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 2


Просмотр профиля
« Ответ #2 : 06.06.2020, 15:33:26 »

Уважаемые коллеги,

всем большое спасибо.

Макрос уже пишется.

С уважением
В.
Записан
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru