|
Данные вида (name:value) в таблицу вида столбцы-name, строки-values
|
|||
---|---|---|---|
#18+
Имеются данные вида (наименование величины # значение_величины), записи разделены пятью пустыми строками и символом ' (апостроф): $ConflictAction # 1 DEPART_CODE # 1 TARG_DEP # 1 Targ_Depart # 01 CHAIN_DATE # 01.08.2000 CHAIN_TIME # 17:31:07 Depart # 01 P_F_Name # Иванов А.В. P_G_Name # TYPE_NAME # Исходящий P_C_Name # P_I_Name # P_R_Name # Last_Edit # Сергеев Владимир Last_Date # 14.09.2000 (5 пустых строк) '(Апостроф, пошла следующая запись) $ConflictAction # 13 DEPART_CODE # TARG_DEP # Targ_Depart # 01 CHAIN_DATE # 01.08.2000 CHAIN_TIME # 17:31:07 . . . и т.д. Записей много, причем, некоторые поля в одной записи могут быть пустыми (P_C_Name,P_I_Name, P_R_Name, и др...), а в другой - заполненными. Цель - привести все к табличному виду --------------------------------------------------------------------------------------------------------------------------- |$ConflictAction|DEPART_CODE|TARG_DEP|...|...|...|...|__Last_Edit___|_Last_Date_ | | _____ 1 _____ | ___ 1 ______ | ____ 01 __ |...|...|...|...|Сергеев Влад |14.12.04 ___ | | _____ 13 ____ | ___________ | ____ 01 __ |...|...|...|...|Андреев_____ |12.01.01 ___ | И т.д. Первый раз столкнулся с Excel, не могу понять, как это сделать. Попробовал делать запросы, они работают, но очень уж много столбцов (в качестве примера я привел усеченный вид данных, на самом деле там 85 наименований_величин и около 13 файлов с данными по 700 ЗАПИСЕЙ в каждом...) и к тому же если встречаются пустые поля, то запрос их просто пропускает, и соответствия полей в итоге не получается. Буду благодарен за любую помощь или предложения. ----- С уважением, Александр. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2004, 14:36 |
|
Данные вида (name:value) в таблицу вида столбцы-name, строки-values
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2004, 16:03 |
|
Данные вида (name:value) в таблицу вида столбцы-name, строки-values
|
|||
---|---|---|---|
#18+
Пример - чего? готов конечно выслать, только что требуется-то? ----- С уважением, Александр. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2004, 17:20 |
|
Данные вида (name:value) в таблицу вида столбцы-name, строки-values
|
|||
---|---|---|---|
#18+
Какой нибудь из этих 13и файлов например ... если кончено там не конф. данные :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2004, 20:17 |
|
Данные вида (name:value) в таблицу вида столбцы-name, строки-values
|
|||
---|---|---|---|
#18+
Вот собственно один из файлов, единственный маленький, остальные содержат очень большие объемы данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2004, 22:23 |
|
Данные вида (name:value) в таблицу вида столбцы-name, строки-values
|
|||
---|---|---|---|
#18+
имхо файл не очень подходит для работы с запросами я бы сделал следующее 1. сделал бы тип Public Type TMyType ConflictAction As Long DEPART_CODE As Long ....... End Type Как я понял новая запись начинается со строки $ConflictAction это поможет построчно прочитать файл и заполнять тип TMyType при заполнении типа можно проверять наличие # : до # это имя поля в записи, после - значение, соотвественно если # - это последний символ в строке, то значение не указано. если правила разбора сложнее, то можно сделать класс с обработчиком св-ва let. Второй вариант, это назначить в 1 строке каждому столбцу имя, например, а1 - ConflictAction,B1 - DEPART_CODE и т.д. При чтении записи из файла, брать все что слева от # и обращаться через имя поля к ячейке в Excel. В общем, пробуйте. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2004, 09:52 |
|
Данные вида (name:value) в таблицу вида столбцы-name, строки-values
|
|||
---|---|---|---|
#18+
Ооооооох... Все это для меня чересчур круто! Я вобщем-то в excel сумел добиться разделения по столбцам названия и значения (data.xls), теперь надо как-то сделать пробег по строкам, и чтобы значения, соответствующие наименованию, он вставлял в столбец новой таблицы (konvert.xls), название которого соответствует этому наименованию... Вот только как это бы сделать... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2004, 10:23 |
|
Данные вида (name:value) в таблицу вида столбцы-name, строки-values
|
|||
---|---|---|---|
#18+
И, собственно, заготовка для вытащенных данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2004, 10:24 |
|
Данные вида (name:value) в таблицу вида столбцы-name, строки-values
|
|||
---|---|---|---|
#18+
Конечно коряво, не отшлифовано, но могет поможет тебе... Stepler (щёлк-щёлк!!) Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2004, 11:49 |
|
Данные вида (name:value) в таблицу вида столбцы-name, строки-values
|
|||
---|---|---|---|
#18+
Да, забыл : ты свой приложенный файл открываешь Экселем и далее запускаешь Макрос2 в моем файле... Stepler (щёлк-щёлк!!) Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2004, 11:52 |
|
Данные вида (name:value) в таблицу вида столбцы-name, строки-values
|
|||
---|---|---|---|
#18+
Я в VBA не очень, но могу предложить еще один вариант Сохраняешь данный текст как hta файл (например parser.hta). Выбираешь файл, она из него сделает xml файл. А xml можно в любую программу импортировать. Кстати, будет выдавать ошибку типа "Достигнуть конец файла" (перевод примерный, т.к. у меня на english все...), не обращай внимания :) Не охота доделывать. Удачи. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2004, 12:28 |
|
Данные вида (name:value) в таблицу вида столбцы-name, строки-values
|
|||
---|---|---|---|
#18+
Вроде нашел ошибку ... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2004, 13:42 |
|
Данные вида (name:value) в таблицу вида столбцы-name, строки-values
|
|||
---|---|---|---|
#18+
Спасибо огромное всем, кто откликнулся, после небольших исправлений макроса Stepler'a все сработало. Однако вот еще такой вопрос: данные оказались равномерными, но в некоторых записях (которых в принципе оказалось достаточно много) присутствуют какие-то левые наименования величин. Каким образом можно удалить эти СТРОКИ по условию, то есть, допустим, есть строка $link # и у этого наименования пустое значение, и вообще эти строки не нужны. То есть надо пройтись по всему документу и удалить все СТРОКИ (именно строки, а не значения в них), у которых наименование равно $link. Как это можно сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2004, 15:37 |
|
Данные вида (name:value) в таблицу вида столбцы-name, строки-values
|
|||
---|---|---|---|
#18+
типа Cells.Find(What:="$link", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate Rows(" 2:2 ").Select ' У тебя енто будет N - номер строки Selection.Delete Shift:=xlUp Stepler (щёлк-щёлк!!) Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2004, 17:11 |
|
Данные вида (name:value) в таблицу вида столбцы-name, строки-values
|
|||
---|---|---|---|
#18+
Steplerтипа Cells.Find(What:="$link", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate Rows(" 2:2 ").Select ' У тебя енто будет N - номер строки вот сюды Selection.Delete Shift:=xlUp Да, опять забыл - где зеленый, туда проверку на пустоты ячеек строки, как у меня было в Макросе2 "If IsEmpty(ActiveCell(N, i)) Then...." Stepler (щёлк-щёлк!!) Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2004, 17:16 |
|
|
start [/forum/topic.php?fid=61&gotonew=1&tid=2186553]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
12ms |
get first new msg: |
8ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 171ms |
0 / 0 |