![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 24.11.2011
Сообщений: 5
|
![]()
На учёбе дали довольно интересное ТЗ...
Есть БД (не пугайтесь, в Excel'e) на 9к строк. В 1-м из столбцов артикул товара. Проблема в том что во многих строках несколько артикулов через символ ";" (не спрашивайте, я сам не знаю почему оО). Суть ТЗ: Если в артикуле есть ";" (т.е. выглядит примерно так:"abd-hg-63;65adf7;45-37cf+45f"), то нужно для артикула, стоящего после ";" : 1) создать ячейку, 2) записать в неё артикул, стоящий после ";", 3) удалить из 1-й ячейки ";" (Можно переместить символ во 2-ю и удалить его там. Не знаю, как лучше...), 4) Если во 2-й ячейке остался символ ";" (в 1-й ячейке было 3+ артикулов), соответственно проделать операцию заново пока в 1-м столбце не будет по 1-му артикулу. Соль: Если уже есть Пустой(свободный) столбец, артикул следует записать в него, а не создавать новый. В противном случае получится овер 9к строк, что само собой не желательно (мягко говоря). Я в Excel дуб дубом, не могу даже найти ф-цию переноса из 1-й строки в другую... (да да - нефиг было пары прогуливать...) Помогите, пожалуйста хотя бы частично составить формулу) Как я это вижу: Если в R1C1 есть ; то проверить наличие пустой ячейки справа, если нет, создать, переместить в след. ячейку символы от ;(включительно), удалить 1-й символ. и зациклить... Последний раз редактировалось ViZ0R; 14.04.2013 в 12:11. |
![]() |
![]() |
![]() |
#2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Не понял, что вам надо, — но попробуйте так:
1) выделяем столбец с артикулами 2) на вкладке «Данные» жмём «Текст по столбцам» 3) указываем тип данных - «с разделителями», задаём разделитель «точка с запятой», и получаем артикулы, разнесенные по столбцам не это ли вам нужно было? |
![]() |
![]() |
![]() |
#3 |
Регистрация: 24.11.2011
Сообщений: 5
|
![]()
EducatedFool
В принципе то, что нужно за исключение 1-го НО: Все столбцы справа заменяются. А столбец с артикулами стоит в центре (т.е. справа есть другие столбцы с не менее нужными данными). Можно, конечно перенести нужный нам столбец в крайнее правое положение таблицы, но это несёт за собой определённые неудобства. К тому же возникает путаница с форматами текста (например есть артикул 03.01, а из него делают дату. При попытке изменения в текст выдаёт непонятное число (41277)). Благодарю за ответ. Последний раз редактировалось ViZ0R; 14.04.2013 в 13:58. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Ну только из сказанного я могу предположить, что это файл.csv, который открыт в Экселе без разбивки по столбцам. Такой файл открываем как внешние данные, из текста, разбиваем в мастере по столбцам.
Не хотите показать этот файл в исходном виде (НЕ СОХРАНЯЯ в Экселе)?
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 24.11.2011
Сообщений: 5
|
![]()
Hugo121
Никаких файлов csv у меня нету) Только БД в в xls(Excele'e). Собственно то, что мне выдали. Хотя, возможно я вас неправильно понял... |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Хотя перечитал ещё раз - вероятно всёж не csv, раз уж другие столбцы есть.
Тогда думаю макросом можно так сделать - сперва пройтись по столбцу и определить максимум разделителей в строке, добавить сколько нужно столбцов, «Текст по столбцам».
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 24.11.2011
Сообщений: 5
|
![]()
Hugo121
Тем же макаром можно перетащить нужный нам столбец в крайнее правое положение, далее исполнить предложение EducatedFool, а потом вернуть лёгким движением руки с зажатой левой кнопкой мыши расставить столбцы в нужном нам порядке. Что я и сделал. Собственно вопрос закрыт, всем большое спасибо за помощь! |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Очень страшная задача! | Не_шарю_в_делфи | Помощь студентам | 1 | 12.07.2011 23:15 |
Страшная ошибка "состояние E_FAIL" | $T@LKER | БД в Delphi | 0 | 06.11.2010 00:33 |
Страшная ошибка при создании процесса | nazavrik | Общие вопросы C/C++ | 3 | 03.10.2009 01:17 |
Составная форма | Skolot | Microsoft Office Access | 0 | 30.04.2009 12:54 |
Составная форма с иерархической системой ниспадающих списков | lastochka | Microsoft Office Access | 8 | 22.12.2008 14:51 |