Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2011, 11:22   #1
Veylet
Пользователь
 
Регистрация: 20.09.2011
Сообщений: 14
По умолчанию Разбить данные в ячейке определенным образом

Добрый день Всем, уважаемые форумчане!
Столкнулся с одной проблемой, которая не поддается решению у меня

Есть некие данные, содержащиеся в фале формата CSV. Данные представлены следующим образом:
....
2011.09.20 00:00:00,1,3623,1,3622,2,63,2,63
2011.09.20 00:00:01,1,36234,1,36222,1,5,3
....

Все бы ничего, но каждая строка находится в одной ячейке, а не в отдельных. то есть в идеале надо так:
____А_____|____B_____|____C___|___D ____|___E__|___F___|
2011.09.20_|_00:00:00_|_ 1,3623_|_1,3622__|_2,63_|__2,63__|
2011.09.20_|_00:00:01_|_1,36234_|_1 ,36222_|_1,5__|__3____|

Пробовал импорт CSV c указанием разделителей - пробела и запятой, но в этом случае он разбивает все числа с запятыми в отдельные ячейки, а надо как на примере выше.

Будьте добры, подскажите -каким методом можно разбить эти данные согласно указанного примера?
Возможно есть какие-нить настраиваемые маски импорта? К примеру учитывать при разбиении только четные запятые?
Вложения
Тип файла: rar Ticks.rar (3.4 Кб, 15 просмотров)
Veylet вне форума Ответить с цитированием
Старый 20.09.2011, 11:26   #2
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

А фиксированным не пробовали? Или как вариант разбивка по количеству знаков в строке.
gluk_fm вне форума Ответить с цитированием
Старый 20.09.2011, 11:47   #3
Veylet
Пользователь
 
Регистрация: 20.09.2011
Сообщений: 14
По умолчанию

В том то все и дело -что в каждая строка - разная по длине. В примере выше в ячейках С, D, E, F - данные разной длины относительно нижних
Veylet вне форума Ответить с цитированием
Старый 20.09.2011, 11:50   #4
Watcher_1
Форумчанин
 
Аватар для Watcher_1
 
Регистрация: 22.06.2011
Сообщений: 325
По умолчанию

Вам тогда нужно нормально настроить выгрузку csv чтобы разделителем чисел была точка, или разделителем данных была точка с запятой
Заказать макрос можно на сайте http://excel4you.ru/
Watcher_1 вне форума Ответить с цитированием
Старый 20.09.2011, 12:03   #5
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Да, выгрузку настроить необходимо.
А для существующих файлов можно использовать макрос, который заменяет каждую нечетную запятую на ";" в выделенном диапазоне. Потом - текст по столбцам, разделитель ";".
Код:
Sub bb()
Dim c As Range, s$, i&, tgl As Boolean
For Each c In Selection
    s = c
    If InStr(s, ";") = 0 Then
        tgl = True
        i = 1
        Do
            i = InStr(i + 1, s, ",")
            If i = 0 Then Exit Do
            If tgl Then Mid(s, i) = ";": tgl = False Else tgl = True
        Loop
        c = s
    End If
Next
End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 20.09.2011, 12:25   #6
Veylet
Пользователь
 
Регистрация: 20.09.2011
Сообщений: 14
По умолчанию

Большущее спасибо за макрос))

П.с. Выгрузка увы не в моей власти - файлы только в таком виде скачиваю с ресурса..
Veylet вне форума Ответить с цитированием
Старый 20.09.2011, 12:31   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Я смотрю, там
1,5,3
проскочило.
А если будет 3,1,5 - как делить будете?
Или тут:
2011.09.20 00:00:04,1,36235,1,36225,2,25,3
2011.09.20 00:00:06,1,36233,1,36222,3,3

P.S. - как кто-то сказал - "А потом Челленджеры падают..."
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 20.09.2011 в 12:36.
Hugo121 вне форума Ответить с цитированием
Старый 20.09.2011, 13:04   #8
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

> Выгрузка увы не в моей власти - файлы только в таком виде скачиваю с ресурса.

Посмотрите, может там настройки какие есть. Напишите администратору ресурса. Потому что выдавать файлы, в которых десятичный разделитель совпадает с разделителем списка - это большой FAIL.

Для корректной работы макроса числа обязаны содержать запятую, т.е. целые числа должны быть в виде ...,2,0,3,0,... или ...,2,,3,,...
exceleved@yandex.ru Яндекс.Деньги: 410011500007619

Последний раз редактировалось Казанский; 20.09.2011 в 13:06.
Казанский вне форума Ответить с цитированием
Старый 20.09.2011, 13:07   #9
Veylet
Пользователь
 
Регистрация: 20.09.2011
Сообщений: 14
По умолчанию

блиинн, а и вправду. во засада.

Так я пропускаю часть данных.

А есть возможность импортировать эти данные из csv по их типу?
Просто вот такую штуку у них вычитал:

Файл состоит из последовательности блоков байтов одинаковой длинны, отсортированной по времени тиков, то есть первый блок - первый тик , второй - второй тик и т.д. Каждый блок байтов - это записанные в определенной последовательности данные тика, а именно: time, ask, bid, askVol, bidVol. Все значения кроме time являются 8байтовыми double (стандартный размер double), time - 8байтовый long. Итого размер блока - 5 * 8 = 40 байт. Зная эту длину можно запросто перескакивать на любой тик в файле

В целом то понятно что каждая строчка - это блок, но как сам блок разделить на типы данных -здесь мои знания vba кончились
Veylet вне форума Ответить с цитированием
Старый 20.09.2011, 13:09   #10
Veylet
Пользователь
 
Регистрация: 20.09.2011
Сообщений: 14
По умолчанию

Уже писал им, им мои просьбы по барабану...
Veylet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как разбить данные из одной ячейки по 4-м отдельным ячейкам? lench Microsoft Office Excel 12 12.01.2012 08:20
Каким образом можно сделать таблицу Excel в ячейке Excel? Severny Microsoft Office Excel 3 08.10.2010 09:13
Разбить данные из одного поля бд Krasi PHP 4 15.03.2010 08:03
Нужно разбить те числа которые в одной ячейке по разным ячейчам в столбец Alexander_Gr Microsoft Office Excel 8 20.11.2007 08:02