Здравствуйте!
Только начинаю изучать QV, поэтому не судите строго за, уверен, простой вопрос для вас.
У меня две таблицы - План продаж помесячный и Накладные
Делаю прямую таблицу, где хочу получить:
- Период плана (Дата начала и Дата окончания) - сделал
- Плановую сумму - сделал
- Фактическую сумму
Как в прямой таблице указать, что фактическая сумма (т.е. сумма по накладным), должна рассчитываться в диапазоне плана?
Заранее спасибо за ответ!
День добрый.
Не совсем понятно по составу измерений.
Хотелось бы посмотреть на модель данных (Ctrl-T, Копировать изображение, и вложением или через галерею в сообщение на форум).
Там где есть поля даты, сложно обойтись без календаря. Поэтому потребуется добавить календарь.
Далее, исходя из состава таблиц, потребуется определится с моделью данных, т.е. сколько таблиц с фактами будем использовать. Думаю, что надо будет объединить план с фактом в одну.
Ну и, без расширенной фильтрации в выражениях диаграмм тоже не обойтись.
По одной таблице фактов, к примеру:
вариант 1
признак,дата, номенклатура,покупатель, количество, сумма (где признак= план или факт)
вариант 2
дата, номенклатура,покупатель, количество плановое, сумма плановая, количество факт, сумма факт
Тогда для получения суммы в первом случае потребуется использовать фильтрацию по признаку,
во втором - достаточно будет посчитать сумму по плановым показателям.
Результат будет получен в обоих случаях, а о том какой вариант правильнее, на небольших данных не принципиально.
План:
Дата начала | Дата окончания | Название плана | План |
01.01.2014 | 31.01.2014 | Январь | 100 |
01.02.2014 | 28.02.2014 | Февраль | 200 |
01.03.2014 | 31.02.2014 | Март | 300 |
Факт
Дата накладной | Факт |
15.01.2014 | 5 |
20.01.2014 | 10 |
17.03.2014 | 20 |
План-факт - Который я хочу получить
Название плана | План | Факт |
Январь | 100 | 15 |
Февраль | 200 | 0 |
Март | 300 | 20 |
Попробовал сделать как советуют англоязычные форумы-
Sum({<ДАТА_НАКЛАДНОЙ= {">=$(=Date(ДАТА_НАЧАЛА)) <=$(=Date(ДАТА_ОКОНЧАНИЯ))"}>} ФАКТ)
Но функция не отрабатывает, выводит нули.
(https://qliksense-forum.ru/qvf/proxy.php?request=http%3A%2F%2Fmdprom.com%2F11-04-2014%252010-53-27.jpg&hash=5820c6a1d62c2778d7fb7e36d276802497c42418)
Какой смысл в датах начала и конца месяца плана?
Если план месячный без дат продаж, то принимаем дату плана скажем начало месяца за дату формирования плана.
Дату окончания убираем, "Дата начала" и "Дата накладной" - переименуем в Дата.
Формируем календарь с полем Дата, Месяц
и получаем отчеты по месяцу. Связь будет через "Дата".
Как вариант. навскидку.
Спасибо!
Календарь через Объект "Календарь/Ползунок"?
Нет, через скрипт, здесь пример (http://qlikview-forum.ru/qvf/index.php?topic=11.msg14#msg14).
Спасибо за ответ!
Пробовал настроить - получилось на 50%. Не сохранил данные. Сейчас заново настрою, отпишу. Но, чувствую уже близок к результату!
Получилось! Спасибо!
Правда сделал без календаря.
Все же не понятно почему через Sum({<ДАТА_НАКЛАДНОЙ= {">=$(=Date(ДАТА_НАЧАЛА)) <=$(=Date(ДАТА_ОКОНЧАНИЯ))"}>} ФАКТ) не отработало?
Чтобы фильтровать диапазон дат, следует использовать переменные
Скажем, vFromDate и vToDate.
Переменные привязываем на объекты Ползунок/Календарь.
Выражение для кнопки, по нажатию которой устанавливается фильтр на диапазон дат
='>=' & date(vFromDate, 'DD/MM/YYYY') & '<=' & date(vToDate, 'DD/MM/YYYY')
Т.о. выбирая переменные в календариках и нажимая кнопку мы даем условие на фильтрацию диапазона дат.
Без календаря обойтись сложно.