![]() |
|
Модераторы: mihanik |
![]()
|
|
| dionisiu |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 13.5.2006 Где: Крым Репутация: нет Всего: 2 |
Здравствуйте, уважаемые.
Возникла неожиданная пакость: мне урезали права доступа к 1С, из-за чего я не могу получать НОРМАЛЬНУЮ оборотную ведомость, а получаю динамику продаж склада, а это привело к нарушению логики работы моей автоматики. Суть: 1С выдавала таблу со столбцами : Товар, приход, расход, цена, сумма .... (из-за последних мне доступ и подрезали). Взять из неё любую инфу формулой СУММЕСЛИ() - не проблема, что и делалось на протяжении года Теперь выдаёт только таблу с полями : Клиент, Адрес, а дальше столбцы с наименованиями товара, который был продан за рассматриваемый период, причём клиенты разбиты по группам (типа "Восток", "Запад", "Город1", "Город2", "Пригород"...) Всё бы ничего, но товары разбиты на группы по видам (Вода минеральная, Вода сладкая, Пиво КЕГовое, Пиво бутылочное...), каждая группа разбита на бренды (Минералка "ИСТОЧНИК", Минералка "Урюк".....), бренд делится на сорта ("ИСТОЧНИК" Сильногазированный, "Урюк" Негазированный,...), а сорта ещё и на упаковки (0,5л стекло, 1л ПЭТ, 5л ПЭТ, 0,25л ж/б ....) Самая проблемная часть - это нерегулярность продаж КАЖДОГО товара и связанное с этим НЕПОСТОЯНСТВО количества и положения полей в таблице. То есть, сегодня продавались "Источник" С/Г 0,5л бут, "Урюк" 5л ПЭТ, "Урюк" С/Г 1л ПЭТ, соответственно табла будет иметь 5 столбцов (Клиент, Адрес и эти три) Завтра к группе прибавятся продажи "Источника" Н/Г 1лПЭТ, причём 1С воткнёт его МЕЖДУ столбцом "Адрес" и ""Источник" С/Г 0,5л бут", то есть таблица изменит структуру. Если "послезавтра" будет продан "Урюк" 0,25 ж/б, то он попадёт между "Урюк" 5л ПЭТ и "Урюк" С/Г 1л ПЭТ - снова изменение структуры Вопрос в следующем: как отследить подобные изменения на автомате и занести сумму значений столбца, например "Урюк" 0,25 ж/б в ячейку в другой книге (Если в полученной таблице нет этого поля, то 0) (очень уж нехочется возвращаться в "каменный век" и долбить клаву цифрами) я даже вижу пару возможных целей, но не знаю к ним пути: 1. Автоматически именовать диапазоны (какой-нибудь макрос) 2. делать циклом поиск вправо до совпадения, а от него суммировать вниз. Пробовал БДСУММ(), но выдаёт ошибку по критериям - оказалось, что эта функция не может взять и искомое значение, и критерий из одной и той-же ячейки) Пробовал СУММ(ДВССЫЛ(ПОИСКПОЗ())) - ПОМОГАЕТ СЛАБО, так как в строках по группам КЛИЕНТОВ подбиваются итоги |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Насколько я понимаю, речь идет об Эксельном файле... в таком разе там есть такая фича как транспонирование матрицы, после чего ты получишь данные как тебе надо - в столбцах.
Как - см. встроенную справку по функции ТРАНСП(). Обязательно проделай приведенный в справке пример, причем точно по инструкциям. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Staruha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1292 Регистрация: 1.2.2004 Где: Казань Репутация: 6 Всего: 27 |
найти нужный столбец поможет ф-я поискпоз -------------------- Возмездие настигнет |
|||
|
||||
| Aloha |
|
||||
|
. ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 351 Регистрация: 14.5.2006 Репутация: 16 Всего: 165 |
dionisiu
У меня работает такой код:
Примечание:
Это сообщение отредактировал(а) Aloha - 4.6.2006, 03:24 |
||||
|
|||||
| dionisiu |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 13.5.2006 Где: Крым Репутация: нет Всего: 2 |
2 Akina:
Спасибо за внимание, однако ТРАНСП() в моём случае неудобен, так как список клиентов может достигать значений 400-500 точек, что для Экселя тяжко (не более 256 столбцов, кажется). Прошу прощения, в первом посте не указал. 2 Staruha: ПОИСКПОЗ() действительно ищет столбец, однако в столбце 1С ставит промежуточные итоги для различных групп (клиенты группируются по маршрутам, а потом маршрутные итоги группируются по агентам, а в самом низу - общий итог), в результате чего формула СУММ() для столбца по ПОИСКПОЗ() выдаёт невероятных размеров сумму продаж (как минимум, утроенную) 2 Aloha: ого!!!, спасибо за код, однако мне, как новичку в VBA требуется Ваши пояснения: 1. 1С выдаёт файл в формате Эксель95, то есть (не знаю, почему) он имеет только один лист, причём его имя от меня скрыто (не виден ярлык листа). При попытке добавить ещё один лист - новый перекрывает старый, но ярлыки листов не появляются!!!, в связи с чем вопрос - можно ли в строке 8 (Set Rng = Data_Wb.Sheets("Лист1").Range("A1").CurrentRegion) не указывать название листа? 2. насколько я понял, вывод готового потока будет в тот же файл, или я ошибаюсь? 3. Такой нюанс (прошу прощения, не озвучил в начале темы): для каждого клиента данные получаются в строке, причём если из всего ассортимента товара клиент брал лишь часть наименований, то в строке возникают пустые значения в столбцах "невзятого" товара - на таких вещах "спотыкаются" многие функции 4. Если не секрет, где вы используете такой код? я имею ввиду -Вам тоже приходится перегонять и обрабатывать данные между различными программами? В заключение: прилагаю файл, в котором я только изменил названия фирм, брендов, сортов и клиентов (включая адреса). Обращаю внимание, что значительная часть строк удалена, в связи с чем итоги - нереальны. В остальном, формат и содержание (числовое) сохранены Присоединённый файл ( Кол-во скачиваний: 1 )
_______.xls 26,00 Kb |
|||
|
||||
| Aloha |
|
||||||||||
|
. ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 351 Регистрация: 14.5.2006 Репутация: 16 Всего: 165 |
dionisiu
dionisiu. Мне лично задача не до конца ясна. Хотелось бы уточнить конечный формат представления данных. |
||||||||||
|
|||||||||||
| likhobory |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 466 Регистрация: 17.5.2005 Где: Москва Репутация: 5 Всего: 20 |
[offtop] примеры выложены с любезного разрешения автора (pashulka), здесь мы - педанты [/offtop] |
|||
|
||||
![]()
|
| Правила форума "Работа с MS Office" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Работа с MS Office | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |