Q: Начал осваивать этот инструмент для визуализации поступающих данных. Для меня пока сложная задача, но начал с проработки модели данных.
Итак, есть исходные по поступающим данным, и два главных вопроса.
Исходные данные:
каждый квартал появляются данные нарастающим итогом, которые состоят из 40 файлов эксель. Каждый файл отвечает за своё направление (файл поступлений по компаниям и по множеству направлений поступлений (Х); файл выплат по тем же компаниям по направлениям выплат (Х), и так далеее)
в этих файлах отсутствует дата!
1. вопрос — у меня два пакета данных за 2014 и 2015 год, как присвоить каждому пакету данных год, его в таблицах нигде нет.
2. какую модель данных можно заложить, чтобы в дальнейшем догружать пакеты файлов и добавлять их в анализ?
A: в операторе загрузки данных можете добавить свое поле, например:
Код:
load *, ‘2015’ as [Год] from …….;
Q: Прошу подсказать начинающему: аналог построения функции Excel ВПР() в Qlikview.
Например: в таблице даны даты и соответсвующие им текстовые записи (Дата-Страна-Город). Необходимо построить таблицу в которой в разрезе Стран выводятся текстовые записи из поля Город, соответстувующие наибольшей дате, независимо от Страны.
A: построить таблицу в которой в разрезе Стран выводятся текстовые записи из поля Город, соответстувующие наибольшей дате, независимо от Страны
А именно в разрезе стран и независимо от страны.
Можно выложить xls с примером использования ВПР().
Если в целом посмотреть на аналогию в клике, то сам принцип построения связей напоминает работу ВПР() в Excel.
Получение значения из других таблиц по ключевому полю — именно так и работают Qlikview и Qlik Sense.
Q: Столкнулся с одной проблемой, может у кого то есть уже опыт в решении подобного вопроса.
Есть две таблицы связаны по полю user_id
Users:
user_id //id пользователя
date //дата реги
Phone_calls:
user_id //id пользователя
date_call //дата звонка
Нужно вывести в таблице 2 колонки:
1. count users — [Users .date = ‘2014-03-15’] // кол-во зарегистрированных пользователей
2. count users call — [Phone_calls .date = ‘2014-03-15’ AND (Users.date BETWEEN ‘2014-03-01’ AND ‘2014-03-15’)] // пользователи которые зарегистрировались в период с 2014-03-01 по 2014-03-15 и звонили 2014-03-15
Условие противоречивое, каждое поле по отдельности правильно можно посчитать, но как сделать чтобы два поля сразу правильно выводило.
Может кто то знает как можно, правильно посчитать, в COUNT() какие условия нужно дописать или таблицы по другому связать?
A: Можно сначала загрузить мастер -календарь, левым соединением к нему погрузить две указанные таблицы. После загрузки, если необходимы данные на интервале времени за каждый день, то в измерении диаграммы можно указать поле Дата из мастер-календаря, а выражениях использовать функцию Count () с использование анализа множеств для отбором данных . Если же данные нужны только на конкретный день, то можно в принципе просто разместить рядом два текстовых поля с вычисление значений опять же на основе анализа множеств. Об анализе множеств см. штатное руководство пользователя (стр. 915 для рускоязычной версии).
Q: Такая ситуация: Есть 3 таблицы для вывода информации по сделкам, вывод в которые различается по стадии сделки (в одной завершенные, во второй 90%-е сделки, в третей 70%-е). Как можно завязать их все к одному полю даты? На данный момент сделал 3 поля с датами и привязал каждую таблицу к своему полю, таблицы делал по принципу альтернативных состояний. Может можно как-то в свойствах указать применимость к нескольким состояниям?
И еще, можно ли как-нибудь настроить, чтобы при отсутствии данных для вывода по данной выборке, не сбрасывалась выборка, а выводилась пустая таблица?
A: Можно попробовать соединить по таким полям: DATE, SDELKA_100, SDELKA_90, SDELKA_70.
Если есть сделка 100%, то в полях SDELKA_90, SDELKA_70 будет пусто или лучше какое-то определенное значение а в поле SDELKA_100 будет стоять значение TRUE.
Ну и для лучшего понимания задачи, лучше посмотреть исходные данные. Тогда можно помочь более продуктивно.
Q: В ней имеется один сценарий — «сценарий 1» и три товара: «product1, product2, product3».
Как можно добавить такую таблицу к имеющейся модели данных?
Таблица:
Scenery, ProdName, V1, V2, V3
сценарий 2, product1, 1, 2, 1
P.s. Ассоциативные связи не нарушая.
A: В текущем исполнении добавить таблицу в модель данных нельзя, т.к. возникнет цикл в модели данных. Вы можете создать независимую (оторванную от основной модели данных) таблицу, которая носит функциональное название Data Island. Использовать эту таблицу можно в диаграммах с помощью Set Analysis и функции Concat (см. пример http://ivan-shamaev.ru/practical-issues-in-qlikview-part-2/#_Data_Island_QlikView).
Либо свяжите вашу таблицу с одной из таблиц «product» или «view», а второе поле переименуйте. А в диаграмме используйте Set Analysis. Вообщем — экспериментируйте 🙂
Q: Подскажите,пожалуйста.Берем информацию из 1С. В справочнике с должностями присутствуют одинаковые наименования полей с разными кодами и ссылками на это поле, но по сути должности одинаковые, например:
Гл.бухгалтер,
Главный бухгалтер,
гл.бухгалтер
Главный бухгалтер
Как можно сгруппировать это поле в одно, чтобы в справочнике была одна запись с этой должность и при ее выборе отбирались все ссылки связанные с ней.
A: Самое простое сделать выгрузку в эксель и сделать колонку с эталонными значениями)
1С, True
Гл.бухгалтер, Главный бухгалтер
Главный бухгалтер, Главный бухгалтер
гл.бухгалтер, Главный бухгалтер
Главный бухгалтер, Главный бухгалтер
И соответственно работать с полем True.
Q: Подскажите пожалуйста, возможно ли реализовать упрощенный вариант алгоритма к-средних?! Например, для кластеров выбрать произвольно центры, рассчитать Евклидово расстояние до них, и сравнивать расстояния — так принадлежность к кластеру и определять ?
A: С R сдвигов нет?
Максим, а есть пример данных и полученный результат для контроля? Он так и так понадобится чтобы проверить работу алгоритма.
Затронутая тема довольно сложная. Думаю не ошибусь, что многие с этой темой только в институте и сталкивались.
Q: есть две таблицы, в них 4 колонки с одинаковыми именами (FILENAME, DATA, ID_PAC, VERSION), по которым qlik автоматом настраивает связь. Проблема в том что при фильтрации одной таблицы по колонке по которой нет связи (например по FAM) во второй таблице отображаются заполненными колонки только те, по которым установлена связь (FILENAME, DATA, ID_PAC, VERSION) в остальных колонках должна быть информация но там проставляются прочерки автоматически. Помогите пожалуйста настроить связь чтобы данные не терялись. Данные там точно есть по каждому ID_PAC. Скрины прилагаю
A: Надо избавиться от синтетических ключей.
Поведение модели логично. При установке фильтра по одной таблице, другая будет отображать только те значения, которые соответствуют установленному фильтру и связям.
Можете объединить две таблицы в одну с помощью оператора concatenate.
Но все равно с другими таблицами тоже надо будет решать вопрос.
Почитайте по моделям данных http://ivan-shamaev.ru/qlikview-theory-and-practice/
и здесь: https://community.qlik.com/message/572112#572112
Q:В общем ситуация такова:
— есть перечень объектов (например нумерация от 1 до 10)
— по каждому объекту существует три события
— у каждого события свой уникальный признак (тип события).
Мне требуется собрать единую сводную таблицу по каждому из объектов.
1. Самый простой вариант, который у меня зреет в голове — сделать представление этой таблицы на сиквеле и все это счастье уже залить в клик.
2. Хочется извращений. Хочу сделать одно представление со столбцами: 1 — номер объекта, 2 — Тип события, 3 — Описание события.
Выглядит лаконичней, но при таком раскладе не знаю как сделать, чтоб все события по объекту располагались в одной строке, а не в хаотичном порядке, как пойдет. Если это возможно, подскажите как.
A: Неплохая подборка материала по клике — http://ivan-shamaev.ru/qlikview-theory-and-practice/
Обратите внимание на модели данных.
По вашей ситуации,
1. Таблица с объектами. (Ключ — ИД_объекта)
2. Таблица событий. (Ключи — ИД_объекта, ИД_события)
3. События (как справочник) (Ключ — ИД_события)
Загрузится простенькая модель, с хорошим функционалом.
Все получится как хотите, даже с запасом
Q: 1. Есть вот такие данные:
Date Currency Forex_pok Forex_prod Cash_pok Cash_prod
01.05.2015 USD 60,05 60,15 61,05 61,15
02.05.2015 USD 60,05 60,15 61,05 61,15
03.05.2015 USD 60,45 60,65 61,05 61,15
04.05.2015 USD 60,45 60,95 61,25 61,35
05.05.2015 USD 60,55 60,65 62,05 62,15
2. Схема в прикрепленном файле — 01.png.
Вопрос. Как сделать, чтобы при выборе Forex (файл 03.png) в таблице выбирались два поля Forex_pok и Forex_prod?
P.s. Если поменять структуру таблицы DayRates, то сделать это будет легко. Нужно сделать, чтобы не менять структуру таблицы DayRates.
A: Ваш вопрос пересекается с темой http://qlikview-forum.ru/qvf/index.php/topic,658.0.html
Посмотрите пример по ссылке.
Смысл в том, что в таблице для каждого измерения надо будет написать формулу для условия отображения,
подобную этой:

Q: ем грозит связь один ко многим в Таблицах?
Может из-за этого происходить зависание QV?
A: Ну как бы обычная схема, таблица справочник где по одной уникальной записи и таблица фактов где их может быть любое количество в пределах возможностей системы.
Может просто памяти мало или процессор слаб.
Q: Добрый день, как объединить не связанные таблиц ячейка в ячейку.
К примеру:
Код:
Таблица А
1
1
1
Код:
Таблица Б
2
2
2
Нужно сделать, что бы была Таблица Х
Код:
Столбец 1 | Столбец 2
1 | 2
1 | 2
1 | 2
К примеру, объедение должно происходить, по порядку.
A:
t1:
LOAD * inline
[столбец1
1
2
3
4
5
];
t2:
LOAD * inline
[столбец2
a
b
c
d
e
f
g
];
tb1:
LOAD *, RecNo() as NumOfRow Resident t1;
tb2:
LOAD *, RecNo() as NumOfRow Resident t2;
drop Tables t1,t2;
Q: Есть товарный отчет где имеются показатели:
Входящий остаток, приход, возврат, списание, исходящий остаток. Выводится сводной таблицей и остаток расчитывается выражением используя «SUM({<[Дата] = {"<$(=[ДатаС])"}>} …. Все приходы минус все расходы со дня открытия магазина». Отчет выводит данные за период «ДатаС» и «ДатаПо».
Сейчас просят добавить колонку «Количество дней за период когда товар был на остатках». Получается нужно чтобы на каждую дату в период С — По Просчитались остатки и просумировались дни когда остаток больше нуля. Можно ли это сделать не задавая новую таблицу с остатками на каждый день?
A: Если надо посчитать количество дней когда был остаток товара, то, думаю, без обработки сведений в скрипте не обойтись.
Я встречал на официальном сайте заявления о том. что остатки считаются формулами, но живых примеров не видел.
Считаю, что лучше будет подготовить такую таблицу в скрипте.
Q: Столкнулся с тем, что не совсем понимаю, как правильно строить разветвленную модель данных(несколько кубов в классическом представлении).
Несколько фактовых таблиц, имеющих общие измерения приводят к зацикливанию данных. LOOSEN TABLE решает вопрос, но с ним я теряю возможность строить неявные иерархии измерений(когда связь между таблицами измерений проходит через фактовую таблицу).
Мне удалось найти решение в статье про Generic keys (http://community.qlik.com/docs/DOC-3451).
Там все сводится к двум вариантам структуры, которые прикреплены к теме.
Описанные мной проблемы принято решать именно таким образом, или есть другие(более изящные) варианты?
A: Почитайте про ассоциативную модель данных Qlikview
Там же есть информация о построении модели данных.
Когда есть несколько таблиц с фактами по общим измерениям и все они (таблицы фактов) должны рассматриваться в одном приложении — есть вариант связать их в одну таблицу (concatenate, не путать с join) и прийти к схеме «звезда».

Q: Здравствуйте! В попытках связать несколько разных дат моей модели (при том, что ключевые поля уже есть и при связке дат образуется цикл) я наткнулась на одну очевидно интересную вещь «Canonical Date». Подробнее описано тут http://community.qlik.com/blogs/qlikviewdesignblog/2014/02/17/canonical-date
Поясните, пожалуйста:
1. Что понимается по «мастер-календарем»? Это просто календарь, как выложен тут на форуме? http://qlikview-forum.ru/qvf/index.php/topic,11.0.html
2. Как создать аж 3 календаря?
3. И не могу до конца понять как они связываются в один календарь….?
A:Под мастер-календарем или просто календарем понимается таблица с ключевым полем Дата, связанная с таблицей фактов и содержащая в себе дополнительные календарные измерения для облегчения работы в модели данных. Под доп.измерениями имеются в виду год, месяц, день, неделя, день недели, квартал, полугодие, начало месяца, начало квартала и т.д.
2. Загрузить один и тот же календарь с префиксом, чтобы имена полей не пересекались друг с другом, можно воспользоваться готовой библиотекой (набором функций).
3. В один календарь они никак не могут быть связаны. По указанному примеру Canonical Calendar играет такую роль с помощью созданной таблицы DateBridge.

Допустим есть один заказ №001 от 10.01.2015 на дату отгрузки 15.01.2015 отгруженный 20.01.2015
Datebridge будет содержать записи:
10.01.2015, 001, Заказ от
15.01.2015, 001, Отгрузить
20.01.2015, 001, Отгружен
Если есть заказ № 002 от 15.01.2015 на 20.01.2015 то в таблице будет уже следующее:
10.01.2015, 001, Заказ от
15.01.2015, 001, Отгрузить
20.01.2015, 001, Отгружен
15.01.2015, 002, Заказ от
20.01.2015, 002, Отгрузить
20.01.2015, 002, Отгружен
Таким образом, построив график по измерению CanonicalData вы сможете с помощью выражений анализа множеств (Set Analysis) определить в одном графике сколько у вас было заказов принято и отгружено.
Этого же можно добиться если заказы и отгрузки будут представлять собой разные массивы данных, объединенных в одну таблицу фактов с общим и единственным полем Дата документа, определяющим дату свершения события.
Q: Недавно начала изучать QlikView на новой работе, столкнулась с такой сложностью:
Мне надо выстроить правильную загрузку данных в приложение, пока не могу понять как это сделать, чтобы на выходе получать интересующую меня аналитику.
У меня магазин, в котором ежедневно стартуют акции и длятся 3 дня. Соответственно у меня есть следующие поля по первой таблице «Акции»:
— Даты активности акции
— ID акции
— ID товара в акции
— Категория товара
— первая характеристика товара
— вторая характеристика товара
— кол-во предлагаемых шт. каждого товара по акции
Поскольку все эти аукционные товары продаются, то есть еще таблица «Заказы», которая содержит:
— дата заказа
— № заказа
— ID клиента
— ID товара в акции
— статус заказа
— кол-во проданного товара
— цена продажи
Я поняла, что QlikView может ассоциировать таблицы последовательно и только по одному полю. У меня в данном случае это поле — ID товара в акции.
Но тут встает задача, которую я не понимаю как решить. Как мне сделать календарь, при выборе даты, например, на котором, мне бы показывалось:
1. Какие акции в этот день проходили
2. Какие заказы и сколько были сделаны
По сути, чтобы сделать такую выборку мне надо связать поля «Дату активности акции» и «Дата заказа», но возможно ли это и если да, то как?
По какой структуре лучше осуществлять загрузку данных?
A: Пока дам подсказку, более развернуто отвечу чуть попозже.
Рассматривайте даты как календарные измерения. Создайте календарь
Qlikview строит связи не только по одному полю (об этом есть информация в справочной документации в pdf-формате)
Но это не самый лучший вариант. Возможно, для вашего случая, объединение таблиц фактов в одну будет хорошим решением.

Найти решение у бизнес-партнера QlikTech (QlikView) в России.
Форум разработчиков QlikView и Qlik Sense. Получите ответы на все вопросы по QlikView и Qlik Sense!
RSS
4 декабря 2017
gromych 
Опубликовано в рубрике