imho.ws |
![]() |
![]() |
![]() |
# 3 |
Junior Member
Регистрация: 15.06.2003
Сообщения: 85
![]() |
В EXCEL 2003 в виде списка помещена база данных измеренных величин параметров, т.е. в формате указанном ниже (как пример):
A B C S Дата Параметр 1 Параметр 2 .... Параметр S 09 авг 2011 00:00:01 12 9 13 09 авг 2011 00:00:02 11 8 12 Т.е. величины параметров приведены в этом списке с шагом 1 секунда. Количества строк в этом списке более 20 000. Каким образом (способом или методом) можно переформатировать такой список, чтобы шаг списка был не 1 секунда, а одна минута, т.е. как привести этот список к виду Дата Параметр 1 Параметр 2 .... Параметр S 09 авг 2011 00:01:00 13 7 11 09 авг 2011 00:02:00 12 9 13 Ясно, что вручную удалять каждые 59 строк (1 минута- 60 секунд) "не хотелось бы" |
![]() |
![]() |
# 4 |
Full Member
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
написать процедуру.
Как вариант, сделать другой список заполненый через команду if Ели в дате количество секунд = 1, тогда скопировать значение. Получится список такогоже размера, только с кучей пустых строк. Дальше этот список скопировать на другой лист и отсортировать. Получится без пустых строк. Последний раз редактировалось EvroStandart; 16.07.2012 в 12:17. |
![]() |
![]() |
# 5 |
Junior Member
Регистрация: 15.06.2003
Сообщения: 85
![]() |
EvroStandart,
Я не очень понял (извините) фразу "..если в дате количество секунд=1..". Когда-то неплохо получалось с программированием в V. Basic, но в VBA и особенно для MS Excel. Поэтому если можно может сбросите фрагмент программы? И еще. Мне кажется, что формат в списке "09 авг 2011 00:02:00:000" не соответствует системным форматам (база данных внешняя- не моя), поэтому запись надо принимать только как текстовое поле? (Добрые слова не пишу - тут за это наказывают) |
![]() |
![]() |
# 6 |
Newbie
Регистрация: 16.07.2012
Адрес: Boston, MA
Пол: Male
Сообщения: 4
![]() ![]() |
Если надо просто оставить каждую 60-ю строчку, то это можно куда проще сделать -
=CELL("contents", OFFSET($A$1,(ROW()-1)*60,0)) Ну там конкретнее на сколько надо сдвиг и откуда надо копировать уже сам разберешься.... Главное сама идея. Берем номер строчки, умножаем на 60, получаем номер строчки откуда надо взять значение. Где-то так. |
![]() |
![]() |
# 9 | |
Moderator
Регистрация: 16.02.2004
Адрес: 02RU
Пол: Male
Сообщения: 1 574
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
АДРЕС(номер_строки;номер_столбца ;тип_ссылки;а1;имя_листа)
Цитата:
__________________
Пусть тебе приснится пъяный зайчик с пистолетом ![]() |
|
![]() |