Доброго времени суток! По работе нужно анализировать списание материалов, т.е. сравнивать с плановым, в принципе все получилось кроме сводной таблицы. Раньше делал через сводную на VBA для этих целей был лишний лист и работало подольше. Чтобы обойтись без этих маневров решил подтянуть SQL
Установил OpenServer и путем долгих проб и ошибок (и рысканья по интернету) нашел решение.
Решение полностью рабочее но приходится экспортировать лист в csv потом затягивать в таблицу БД потом выполнять запрос и обратно в Excel. Согласен получается не быстрей чем если бы на отдельном листе через VBA пропустил через сводную, но я борюсь с лишними листами, добиваюсь быстроты работы (в оригинале строк может быть свыше 10 тыс) ну и стремлюсь к лаконичности )
В итоге просьба: подскажите пожалуйста как написать данный запрос в Excel или как с помощью SQL добиться нужного результата другим способом? в прилагаемом файле лист "дано" "надо".
Еще есть лист "PS" он дублирует лист "надо" но уже с итогом, на очереди там макрос GetpoTipy (используются словари) но он работает только с "семизначными" (раньше он работал по ключу где всегда было 7 знаков), а сейчас я решил сделать по коду там разное количество цифр, а как я год назад его "лепил" уже не могу вспомнить так как тоже откуда то стырил), если будет возможность помогите и с этим, чтоб в запросе не использовать LPAD и не добивать сначала нолями, а то Excel ругается.
Заранее благодарен.

Код |
---|
SELECT GR_PR, KOD_PR, NAIM, LPAD(GRKD_PR,7,0), PRIZN, GR_B, KOD_B, NAIMB, SUM(IF(TIP='norm',KOL_B,0)) AS Plan_kol, SUM(IF(TIP='norm',SUM_B,0)) AS Plan_Sum, SUM(IF(TIP='fact',KOL_B,0)) AS Fact_kol, SUM(IF(TIP='fact',SUM_B,0)) AS Fact_Sum FROM INTERtoPS GROUP BY GR_PR, KOD_PR, GRKD_PR, NAIM, PRIZN, GR_B, KOD_B ORDER BY GR_PR, KOD_PR, PRIZN, GR_B, KOD_B; |
Решение полностью рабочее но приходится экспортировать лист в csv потом затягивать в таблицу БД потом выполнять запрос и обратно в Excel. Согласен получается не быстрей чем если бы на отдельном листе через VBA пропустил через сводную, но я борюсь с лишними листами, добиваюсь быстроты работы (в оригинале строк может быть свыше 10 тыс) ну и стремлюсь к лаконичности )
В итоге просьба: подскажите пожалуйста как написать данный запрос в Excel или как с помощью SQL добиться нужного результата другим способом? в прилагаемом файле лист "дано" "надо".
Еще есть лист "PS" он дублирует лист "надо" но уже с итогом, на очереди там макрос GetpoTipy (используются словари) но он работает только с "семизначными" (раньше он работал по ключу где всегда было 7 знаков), а сейчас я решил сделать по коду там разное количество цифр, а как я год назад его "лепил" уже не могу вспомнить так как тоже откуда то стырил), если будет возможность помогите и с этим, чтоб в запросе не использовать LPAD и не добивать сначала нолями, а то Excel ругается.
Заранее благодарен.