Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1 2 След.
RSS
Привести данные из 1С в нужный вид для сводной в ексель
 
Есть база из 20 тыс строк,  полученная из 1С
Столбец А выглядит следующим образом :
Коллекция 1
Артикул 1
Артикул 2
Коллекция 2
Артикул 3
Артикул 4
Артикул 5
Коллекция 3
Артикул 6


Для сводной нужно сделать данные в формате:
Столб. А.  Столб. Б.
Артикул 1     Коллекция 1
Артикул 2     Коллекция 1
Артикул 3     Коллекция 2
Артикул 4     Коллекция 2
Артикул 5     Коллекция 2
Артикул 6     Коллекция 3


Трудность заключается в том,  что количество артикулов под коллекцией колеблется от 1 до 70.
Есть ли возможность хоть сколько то автоматизировать процесс?
Заранее благодарен откликнувшимся
Изменено: openid.yandex.ru/denys.koshkin - 8 Апр 2015 23:58:58
 
Автоматизировать можно, приложите пример файла, который нужно преобразовать
 
Сначала поменяйте отображаемое имя: сейчас оно с нарушением наших Правил.
 
Все, вроде разобрался с заменой имени. Но не с вопросом в теме)!  Простите за офтоп
Изменено: Денис К - 8 Апр 2015 23:18:22
 
А почему бы не попросить программиста 1С сделать запрос к базе для получения выгрузки именно в том виде, который вам необходим?
EliteBook 8570w, i7, 24Gb Ram
OfficeProPlus 365x64
 
Так и сделаю,  когда мне выделят бюджет на программиста.  А пока стоит оперативная задача состряпать отчет к пятнице
 
Ну без файла тут делать нечего. По тому что видно в теме - привязаться можно только к словам артикул и/или коллекция (ещё к длине строки :) ), но ведь в жизни всё сложнее.
 
Если это файл из 1С8 то привязыватся можно к цвету шрифта/отступам/группировкам.
Стандартные отчеты из 1С очень неудобны для последующей обработки в Excel.
Делал для себя "редизайнер таблиц" отчетов из 1С.

Будет файл (лучше оригинал из 1С, а не переработанный) - будет макрос.
 
Друзья, во вложении исходный файл - ровно такой, каким мне его выдает 1С.

Задача: значения в желтых ячейках в столбце А, перенести в столбец, скажем, F (не принципиально) но напротив каждой даты,
которая стоит под значением в желтой ячейке. Удалить желтые ячейки в конце (что не есть проблема - решаю фильтрацией по цвету, выделением строк, и их удалением).  
Изменено: Денис К - 9 Апр 2015 10:27:16
 
Скопировать можно таким кодом - сперва выделить первый столбец, затем выполнить код:
Код
Sub tt()
    Dim r As Range, a(), i&, t$
    Set r = Intersect(Selection, Selection.Parent.UsedRange)
    a = r
    ReDim b(1 To UBound(a), 1 To 1)
    For i = 1 To UBound(a)
        If Not IsDate(a(i, 1)) Then t = a(i, 1) Else b(i, 1) = t
    Next
    r.Offset(, 5) = b
End Sub

Далее можете удалять лишнее.
 
Друзья, решил, сам решил!
Может кому пригодиться (на основе файла выше):

Подготовка:
1. Снял объединение ячеек во всем массиве
2. Фильтром оставил только даты (не желтые ячейки) - привел их в формат "дата"
3. Снял фильтр в и ячейку F3 поставил формулу =ЕСЛИ(ЯЧЕЙКА("формат";A2)="G";A2;F2)
4. Ну и далее ряд косметических доработок. Но суть выше ясна.

Хех, где я был такой умный назад до! 5 тыс. строк ручной переработки :D
Изменено: Денис К - 9 Апр 2015 10:52:08
 
Мне кажется проще написать и применить код... :)
 
макрос под Ваш отчет:
Код
Sub from1C()
    Dim i&, j&, t1$, a()
    
    On Error Resume Next
    ReDim a(1 To Cells(Rows.Count, 1).End(xlUp).Row, 1 To 5)
    j = 1
    a(j, 1) = "Номенклатура"
    a(j, 2) = "Дата"
    a(j, 3) = "Документ реализации"
    a(j, 4) = "Количество"
    a(j, 5) = "Цена"
    For i = 7 To Cells(Rows.Count, 1).End(xlUp).Row
        If Cells(i, 1).Font.Bold Then
            t1 = Cells(i, 1).Value
        Else
            j = j + 1
            a(j, 1) = t1
            a(j, 2) = CDate(Cells(i, 1))
            a(j, 3) = Cells(i, 2)
            a(j, 4) = Cells(i, 4)
            a(j, 5) = Cells(i, 5)
        End If
    Next i
    With Worksheets.Add
        .[a1].Resize(j, 5) = a
        .UsedRange.EntireColumn.AutoFit
    End With
End Sub
Изменено: MCH - 9 Апр 2015 11:03:44
 
Hugo, действительно проще, но когда знаешь)
Я, например VB не владею, но благодаря Вам, в моей  рабочей коллекции появился первый макрос :)
За что Вам, большущее спасибо, с ним, действительно, проще!)
 
Если в моём коде в начало добавить запрос к пользователю величины смещения и затем подставить это число в строку
r.Offset(, 5) = b
вместо  цифры 5 - то будет универсальный макрос, для любых выгрузок. Ну или оперативно изменить это число в коде редактированием.
Но правда я ориентировался на даты в выделенном столбце (т.е. на то, что можно рассматривать как дату).
А так по задаче конечно полнее отрабатывает код MCH - но он и больше букв :)
 
Просто магия!) MCH, Hugo - спасибо огромное! Я и не знал что макросы творят такие чудеса! Вариант от MCH -  вообще для ленивых))) Супер!

А я, тем временем, пошел учить VB!)))
 
Всем привет!

У меня наверно схожая проблема с Денисом.
Во вложении высылаю пример.
Подскажите, как автоматизировать процесс?
 
Вариант на Power Query с использованием функции Максима Зеленского из темы [Power Query] Добываем иерархию (вложенность) строк из файла Excel, есть такая функция
Внимание! структура оригинального файла должна быть такая же как и в примере, если что-то не заработает или сработает некорректно, то выложите сюда отчет в том виде как он выгружается из 1С с обезличенными данными.
Изменено: PooHkrd - 2 Авг 2018 10:28:11
 
Power Query нужно устанавливать дополнительно?
 
Darkhan, версия Excel?
 
2013
 
Вот здесь можно бесплатно скачать.
 
Спасибо
 
Скачал PowerQuery, начал изучать. Все очень круто и легко делается, спасибо за такой инструмент.
К сожалению, пока не понял, как можно разнести по разным столбцам данные из таблицы (во вложении структура файла, так как выгружается из отчета).
Понимаю, что сортировать по разным столбцам можно по отступам, но пока не понял, как это сделать. Сможете подсказать?
 
Файл нужно выгружать в формате .xlsx, иначе PQ не может обратиться к его структуре. либо сразу выгружайте как нужно, либо пересохраните выгруженный отчет в правильном формате.
Вот вариант, который корректно переделывает ваш отчет.
 
Понял, буду пересохранять, так как отчеты поступают от другой компании в таком формате и менять они врят ли будут. Подскажите пожалуйста, а как изменить источник (путь к файлу)?
 
Вы же когда открываете файл, сразу видите путь к источнику. Вписываете туда вручную корректный путь и обновляете данные в зеленой таблице снизу.
Изменено: PooHkrd - 3 Авг 2018 09:52:20
 
Не выходит, когда я меняю путь в данной ячейке. Эксель отвечает, что "запрос ссылается на другие запросы и поэтому не может напрямую обратится к источнику данных. Измените эту комбинацию." Вот я и не могу понять, как отредактировать вашу таблицу, которую вы так легко и быстро сделали :)
и с правой стороны в "запросах книги" у меня во всех шагах отображается "только подключение" - не знаю, что это значит, но может как-то влияет.
Изменено: Darkhan - 3 Авг 2018 10:01:45
 
Сделайте скриншот экрана с ошибкой и прикрепите как вложение. Только не как картинку, а как просто файл, иначе я его не увижу.
 
Высылаю во вложении. Ошибка появляется, когда я нажимаю на зеленую таблицу и хочу ее обновить.
Снимок.PNG (81.32 КБ)
Изменено: Darkhan - 3 Авг 2018 10:43:11
Страницы: 1 2 След.
Читают тему (гостей: 1)