Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Ноябрь 21, 2017, 03:47:13 am

Автор Тема: YTD 2013,2014,2015 (Qlik Sense, Qlikview)  (Прочитано 1624 раз)

Оффлайн Singenor

  • Новичок
  • *
  • Сообщений: 13
  • Страна: ru
  • Рейтинг: +1/-0
    • Просмотр профиля
YTD 2013,2014,2015 (Qlik Sense, Qlikview)
« : Март 11, 2016, 03:51:33 pm »
Хочу сделать линейную диаграмму, где в зависимости от выбранного пользователем года строится YTD.
Но все YTD у меня показывают одинаковые значения. Делал так:
YTD 2015: Sum({<[Date__c]={">=01.01.2015<=$(=MAX(Date__c, 'DD.MM.YYYY'))"}>} FactCost__c)

YTD 2014: Sum({<[Date__c]={">=01.01.2014<31.12.2014"}>} FactCost__c)

YTD 2013: Sum({<[Date__c]={">=01.01.2013<=31.12.2013"}>} FactCost__c)

Но ничего в итоге не формируется. И это я так понимаю хардкод, можно ли без него обойтись?
FactCost - сумма продаж

Оффлайн Singenor

  • Новичок
  • *
  • Сообщений: 13
  • Страна: ru
  • Рейтинг: +1/-0
    • Просмотр профиля
Re: YTD 2013,2014,2015
« Ответ #1 : Март 14, 2016, 01:28:02 pm »
Проблема актуальна

Оффлайн kvv

  • Гуру
  • ***
  • Сообщений: 135
  • Страна: 00
  • Рейтинг: +36/-0
    • Просмотр профиля
Re: YTD 2013,2014,2015
« Ответ #2 : Март 14, 2016, 02:10:54 pm »
Привет.
1. В целом код верный и должно считаться все верно.
Возможно, нужно попробовать вот так:
YTD 2014: Sum({$<[Date__c]={">=01.01.2014<31.12.2014"}>} FactCost__c)
2. Если ничего не выводит, то можно попробовать двигаться "поступательно". Сначала посчитать (сделать таблицу) для одного года. Если удалось это сделать, то добавить еще один год и т.д.

3. По-поводу, харкода. Не до конца понимаю структуру данных (но это и не важно), но можно/нужно использовать таблицу периодов в которой уже есть MQT, YTD, MAT и т.д. Сейчас нет времени описывать это, возможно в дальнейшем опишу.

P.s. Все это описал для QlikView. Думаю, для QlikSense все где-то так же.

Неофициальный форум пользователей QlikView & Qlik Sense

Re: YTD 2013,2014,2015
« Ответ #2 : Март 14, 2016, 02:10:54 pm »

Оффлайн Singenor

  • Новичок
  • *
  • Сообщений: 13
  • Страна: ru
  • Рейтинг: +1/-0
    • Просмотр профиля
Re: YTD 2013,2014,2015
« Ответ #3 : Март 15, 2016, 01:53:57 pm »
Отрабатывает код только для YTD 2015:
Sum({<[Date__c]={">=$(=YearStart(Max(Date__c)))<=$(=Max(Date__c))"}>} FactCost__c)

Когда пытаюсь сделать аналогичные меры для 2014 и 2013 ничего не работает. Предложенный вариант с :
YTD 2014: Sum({$<[Date__c]={">=01.01.2014<31.12.2014"}>} FactCost__c)
выдает 0 :(


Оффлайн kvv

  • Гуру
  • ***
  • Сообщений: 135
  • Страна: 00
  • Рейтинг: +36/-0
    • Просмотр профиля
Re: YTD 2013,2014,2015
« Ответ #4 : Март 15, 2016, 02:13:57 pm »
Скорее всего, здесь все просто.
В сете "YTD 2014: Sum({$<[Date__c]={">=01.01.2014<31.12.2014"}>} FactCost__c)", не правильно отрабатывает Date... или за 2014 год  "FactCost__c" равно 0.
Скорее всего, не верно отрабатывает Date. Можно/нужно поставить дату как число.

Оффлайн Singenor

  • Новичок
  • *
  • Сообщений: 13
  • Страна: ru
  • Рейтинг: +1/-0
    • Просмотр профиля
Re: YTD 2013,2014,2015
« Ответ #5 : Март 15, 2016, 02:22:18 pm »
Дата у меня выбирается вручную. Может ей какой то формат при выборе другой задать?
FactCost точно не = 0, т.к. система, из которой данные забираем показывает наличие данных по этому полю за 2014 год

Оффлайн Singenor

  • Новичок
  • *
  • Сообщений: 13
  • Страна: ru
  • Рейтинг: +1/-0
    • Просмотр профиля
Re: YTD 2013,2014,2015
« Ответ #6 : Март 15, 2016, 02:27:56 pm »
Сделал формат: =Date([Date__c] , 'DD.MM.YYYY')
Но в итоге все равно не отрабатывает, да и 2015 перестал считаться

Неофициальный форум пользователей QlikView & Qlik Sense

Re: YTD 2013,2014,2015
« Ответ #6 : Март 15, 2016, 02:27:56 pm »

Оффлайн kvv

  • Гуру
  • ***
  • Сообщений: 135
  • Страна: 00
  • Рейтинг: +36/-0
    • Просмотр профиля
Re: YTD 2013,2014,2015
« Ответ #7 : Март 15, 2016, 02:32:13 pm »
Попробуй для 2014 года вот так:
YTD 2014: Sum({$<[Date__c]={">=41640<42005"}>} FactCost__c)

Оффлайн Singenor

  • Новичок
  • *
  • Сообщений: 13
  • Страна: ru
  • Рейтинг: +1/-0
    • Просмотр профиля
Re: YTD 2013,2014,2015
« Ответ #8 : Март 15, 2016, 02:46:59 pm »
все равно нули. Может можно как то на уровне скрипта загрузки прописать формат дат? И потом на загруженных данных все корректно строить?

Оффлайн Singenor

  • Новичок
  • *
  • Сообщений: 13
  • Страна: ru
  • Рейтинг: +1/-0
    • Просмотр профиля
Re: YTD 2013,2014,2015
« Ответ #9 : Март 15, 2016, 02:50:57 pm »
Вот скрипт
LOAD Id,
   OwnerId,
   FactCost__c,
   PlanCost__c,
   Product__c,
   Date__c,
   ProductName__c,
   Quarter__c,
   TerritoryName__c,
   RegionTerritory__c,
   ProductGroup__c;

SELECT Id,
   OwnerId,
   FactCost__c,
   PlanCost__c,
   Product__c,
   Date__c,
   ProductName__c,
   Quarter__c,
   TerritoryName__c,
   RegionTerritory__c,
   ProductGroup__c

FROM TableFP__c;



[autoCalendar]:
  DECLARE FIELD DEFINITION Tagged ('$date')
FIELDS
  Dual(Year($1), YearStart($1)) AS [Year] Tagged ('$axis', '$year'),
  Dual('Q'&Num(Ceil(Num(Month($1))/3)),Num(Ceil(NUM(Month($1))/3),00)) AS [Quarter] Tagged ('$quarter'),
  Dual(Year($1)&'-Q'&Num(Ceil(Num(Month($1))/3)),QuarterStart($1)) AS [YearQuarter] Tagged ('$axis', '$yearquarter'),
  Month($1) AS [Month] Tagged ('$month'),
  Dual(Year($1)&'-'&Month($1), monthstart($1)) AS [YearMonth] Tagged ('$axis', '$yearmonth'),
  Dual('W'&Num(Week($1),00), Num(Week($1),00)) AS [Week] Tagged ('$weeknumber'),
  Date(Floor($1)) AS [Date] Tagged ('$date');

DERIVE FIELDS FROM FIELDS [Date__c]  USING [autoCalendar] ;

Оффлайн kvv

  • Гуру
  • ***
  • Сообщений: 135
  • Страна: 00
  • Рейтинг: +36/-0
    • Просмотр профиля
Re: YTD 2013,2014,2015
« Ответ #10 : Март 15, 2016, 02:56:20 pm »
Есть возможность выслать 100 - 200 строк данных за 2014 год и за 2015 год в каком-то виде - или xls, или inline??