Может ли разработчик QlikView быть разработчиком Qlik Sense?

Разработчики QlikView (согласно книге QlikView 11 for Developers) были теми из нас, кто писал скрипты загрузки, разрабатывал модели данных, формулировал выражения и работал с объектами QlikView. Теперь Qlik Help оставил эту группу людей безымянными, а разработчиками считает тех, кто работает с QlikView или Qlik Sense API, используя какой-то сторонний код. Тем не менее, я по-прежнему считаю себя разработчиком QlikView, поскольку создание программных расширений, или любое другое использование QlikView API не является неотъемлемой частью программного обеспечения. Однако Qlik Sense API находится на переднем крае того, что является программным обеспечением, а звание разработчика Qlik Sense подразумевает некоторую способность работать с ним.

Могут ли разработчики QlikView улучшить свои навыки и стать полноценными разработчиками Qlik Sense?

Славные дни

На протяжении 11 лет я был разработчиком QlikView, и за эти годы я успешно выполнил несколько проектов BI, не разработав ни одного расширения QlikView. Я всегда находил способ использовать собственные объекты QlikView для решения практически любых бизнес-задач. Уверен, есть много разработчиков QlikView, таких же, как и я, которые прибегают к такой же тактике и избегают создания объектов расширений QlikView.

Разработчикам QlikView, на всякий случай, нужно немного напомнить о нашей креативности, и для этого я приведу некоторые примеры. Одним из наиболее распространенных трюков является использование дизайна пользовательского интерфейса Freeform QlikView и наложения одного объекта поверх другого. Этот трюк позволяет нам создать определенную инфографику или добавлять линии и полосы в область диаграммы. Следующие примеры взяты из книги Джулиана Вильяфюрета «Creating Stunning Dashboards for QlikView».

Я использую еще один трюк, чтобы сделать объект гистограммы обозначением тепловой карты, прежде чем размещать его поверх фактической гистограммы.

Также, иногда мне приходится копать глубже, до нижней области функциональности QlikView. Например, я использую строки ошибок, для создания пулевой диаграммы.

Это всего лишь несколько примеров из длинного списка возможных трюков визуализации данных в QlikView. Я уверен, что каждый читатель сможет вспомнить время, когда он использовал объект QlikView каким-то безумным способом. На мой взгляд, это именно то, что делает разработку визуализации данных QlikView настолько интересной.

К сожалению, пришло время перемен, всё заканчивается с появлением Qlik Sense. Отсутствие настраиваемых свойств объектов и произвольной формы разработки пользовательского интерфейса убили все веселье. Однако, похоже, что разработчики Qlik Sense готовы явиться на вечеринку без приглашения. Главный вопрос заключается в том, обладают ли разработчики QlikView достаточными навыками для этого или же вечеринка только для веб-разработчиков.

Самодовольство разработчиков QlikView

Вне всяких сомнений, большинство моих побуждений направленных на то, чтобы узнать, как разрабатывать расширения Qlik Sense, являются личными. Я не добавил ничего нового в свой набор технических навыков, так как примерно в то же время в 2011 году вышел QlikView 11. Конечно, за последние 6 лет я мог бы изучить R, Python, JavaScript, Hadoop или тысячу любых других вещей.

Даже если так, кто может обвинить меня? Жизнь разработчика QlikView по-прежнему интересна, а клиенты остаются довольны тем, чего можно добиться с помощью QlikView. Если бы я мог научиться разрабатывать расширения, чтобы охватывать не только атрибуты визуализации, которых все еще не хватает в Qlik Sense, но и создавать несколько визуализаций, которые я никогда не мог сделать в QlikView, и предлагать своим клиентам готовые преимущества Qlik Sense, тогда я могу это сделать.

Тем не менее, выгоды должны быть весомыми, а кривая обучения для разработки расширений не настолько глубока, чтобы это оставалось хорошим вложением и стоило приложенных усилий. Я считаю, что такое исчисление – это то, что заставляет многих разработчиков QlikView стесняться взять на себя полную роль разработчика Qlik Sense, или, это связано с чем-то большим, чем невозможность научиться писать код на JavaScript. Любой, кто может анализировать логику и синтаксис анализа набора QlikView, способен понимать JavaScript.

Следите за правильностью разрыва

Мы, разработчики QlikView, склонны зацикливаться на теме QlikView и Qlik Sense и функционального разрыва между ними. Также, мы придерживаемся идеи, что Qlik в какой-то момент предоставит нам все основные атрибуты визуализации, которые были доступны в QlikView. Мы можем пойти еще дальше и понять, что, даже если это не так, мы можем зависеть от какого-нибудь великодушного разработчика Qlik Sense, чтобы создать то, что нам нужно.

Первая ошибка состоит в предположении, что устранение разрыва между QlikView и Qlik Sense является целью Qlik. Это не так. Разрыв, в устранении которого заинтересован Qlik – это функциональность Qlik Sense и то, что ожидается от клиентов в будущем. Необходимо отбросить множество функций QlikView, включая некоторые простые параметры свойств визуализации данных из программного обеспечения.

Как и многие другие технологические сдвиги, каждый текущий клиент QlikView в какой-то момент достигнет переломного момента, когда QlikView больше не будет удовлетворять его требованиям. Независимо от того, сможет ли Qlik Sense удовлетворить будущие требования клиентов, это вероятно, будет зависеть не только от Qlik, но и от его экосистемы, в которую входит армия разработчиков QlikView.

Разрыв между требованиями клиентов и объединенной функциональностью Qlik Sense и QlikView потенциально катастрофический. Хотя большая часть ответственности за покрытие этого разрыва принадлежит Qlik, разработчики QlikView способны творчески, хотя бы незначительно, продлевать жизнь QlikView. Они также имеют компетенцию стать разработчиками Qlik Sense и помогут компенсировать некоторые недостатки Qlik Sense.

Стимулом для нас для оказания помощи в закрытии этого разрыва, является продолжение использования преимуществ наших знаний. У веб-разработчиков нет такого же стимула. JavaScript переживет Qlik. Таким образом, мы также можем создавать новые возможности для нашей будущей карьеры, которые не зависят от одного программного обеспечения и, которые все еще используют то, что Qlik-проекты научили нас анализу данных.

Поскольку мы ожидаем, что другие разработчики создадут что-то, что соответствует нашим потребностям, я не думаю, что выполнение важного требования за счет бесплатного труда – хорошая стратегия. Даже если в маловероятном случае, когда я найду все, что мне понадобится в Qlik Branch, и мне никогда не придется разрабатывать расширение с нуля, я единственный, кто отвечает за поддержку и, при необходимости, тонкую настройку этого расширения.

Независимо от каких-либо других побуждений, Qlik может предложить сделать развитие расширений полезным навыком, я думаю, у нас достаточно аргументов, чтобы добавить веб-разработку в наш набор технических навыков.

 

План

План разработчиков QlikView, которые ничего не знают о веб-разработке, выглядит следующим образом:

  1. Позаботиться об основных принципах и изучить HTML5, CSS и JavaScript.
  2. (a) Ознакомиться со справочной документацией разработчика Qlik Sense Developer и (b) создать свое первое расширение.
  3. Получить обновленную информацию из блогов, связанных с Qlik
  4. Получить живой совет от экспертов.
  5. Научиться использовать библиотеку визуализации данных JavaScript.
  6. Найти визуализацию для разработки и просто начать работу.
  7. Найти методы исправления своих ошибок в работе других.
  8. Внести вклад в Qlik Branch.
  9. Найти время и узнать, что сделает вас лучше (заняться саморазвитием).
  10. Создать расширение для решения реальной потребности бизнеса.

И еще…

Если вы все еще не уверены в том, хотите ли Вы самостоятельно развивать расширения Qlik Sense, как минимум, следите за тем, что делают другие в Qlik Branch. Даже если Вы всего лишь пользователь, обратная связь важна для создания лучших расширений.

Учебный центр по технологиям анализа данных и BI: расписание/запись на учебные курсы, тестирование разработчиков — https://education.biconsult.ru/

Присоединяйтесь к QUBIC – сообщество профессионалов в области BI! Наши страницы в соц.сетях – расписание учебных курсов, бесплатные учебные материалы, анонсы мероприятий: https://vk.com/club165575964 и https://www.facebook.com/qubicspb

Неофициальный форум разработчиков QlikView & Qlik Sense Russian forum

Канал на Youtube – много обучающих видео и записи вебинаров

Готовые решения “Конструктор финансовой отчетности” и “Анализ продаж

Set Analysis – Новые и потерянные клиенты с вложенным расширенным поиском

Мне нравится анализ, который можно выполнить с помощью анализа множеств (Set Analysis) Qlik, но его синтаксис приводит от отсеиванию слишком большого количества бизнес-пользователей. Те же самые бизнес-пользователи, которые используют для своих аналитических задач Excel, недостаточно убеждены, что Qlik доступен для выполнения их пользовательского анализа.

Я считаю, что однажды применение простых и сложных бизнес-правил станет проще, но пока этого не произошло я собираюсь поделиться советами и трюками, чтобы максимально упростить синтаксис Set Analysis. Кроме того, я буду использовать примеры часто используемых индикаторов, которые можно повторно использовать для собственных приложений Qlik.

Одним из запутанных атрибутов синтаксиса Set Analysis является использование двойных кавычек (“) и использование одинарных кавычек (‘). Согласно Qlik Help (отличный ресурс),

Поиск всегда определяется использованием двойных кавычек, например, <Ingredient = {«*Garlic*»}> выберет все ингредиенты, включающие «Garlic».

Поиск также может базироваться на формуле или диапазоне. Например, <Customer = {«= sum (Sales)> 10000»}> выберет всех клиентов с суммой продаж более десяти тысяч, а <Year = {«> = 2008 <= 2010»}> выберет в диапазоне между 2008 и 2010 годами.

С другой стороны, одиночная кавычка (‘) обозначает строковое значение. Например, <Customer = {‘Alles Lusekofter’}>. Однако, это может быть ясно для одних, и смущать других. Еще более сбивает с толку тот факт, что на практике не существует никакой разницы между использованием двойной кавычки («) и одинарной кавычки (‘). Например, <Customer = {‘Alles Lusekofter’}> даст вам тот же результат, что и <Customer = {«Alles Lusekofter»}>, и вопреки тому, что говорится в Qlik Help, <Ingredient = {‘* Garlic *’}> возвращает тот же результат, что и <Ingredient = {«* Garlic *»}>.

Когда мы обучаем тех, у которых нет технического образования написанию Set Analysis, важно оставаться последовательным и оставлять выражения как можно более простыми. Самое простое решение – всегда использовать что-то одно.

Единственное допустимое исключение из этого правила будет при использовании вложенного Set Analysis. Вложенный Set Analysis – это когда мы используем расширенный поиск для фильтрации поля, которое также фильтруется Set Analysis. Например,

<Customer = {«=sum( {$<Ingredient={‘*Garlic*’}>} Sales)>10000»}>

будет фильтровать клиентов, у которых есть продажи более чем на десять тысяч для продуктов, содержащих чеснок.

Вот реальное приложение вложенного Set Analysis, которое помогает определить бизнес-правила, определяющие индикаторы для выигранных и потерянных клиентов, которые являются ключевыми индикаторами в любом приложении по продажам. Наши бизнес-правила следующие:

  • Новые клиенты – это те, которые впервые покупали за предыдущие 30 дней.
  • Потерянные клиенты – это те, кто покупали ранее (за последние 120 дней), но ничего не купили за предыдущие 60 дней.
  • Индикаторы можно просмотреть за предыдущие месяцы, а не только за текущий месяц.
  • Учитывайте только положительные транзакции продаж (без возврата)

Наша модель данных включает в себя мастер-календарь с  полями Month, Year, Yearmonth и Orderdate; справочником клиентов; и таблицей фактов с полем «Sales».

Короче говоря, выражение будет вычислять первый и последний раз, когда каждый клиент совершил покупку до даты, выбранной пользователем, и посмотрит, попадает ли она в диапазон дней, определенных в определенных ранее бизнес-правилах. Если бы мы сначала вычислили, что клиент совершил покупку до даты, выбранной пользователем, то будем использовать следующее выражение,

min({$<Sales={‘>0’}, Year=, Month=, YearMonth=, OrderDate={‘<=$(=max(OrderDate))’}>} OrderDate)

и нам нужно всего лишь изменить min на max, чтобы вычислить последний раз, когда клиент совершил покупку,

max({$<Sales={‘>0’}, Year=, Month=, YearMonth=, OrderDate={‘<=$(=max(OrderDate))’}>} OrderDate)

Обратите внимание, что мы использовали одинарные кавычки (‘) в выражениях поиска, включенных в предыдущие формулы. Теперь мы делаем простой подсчет,

count(distinct Customer)

и добавляем предыдущие формулы, которые рассчитали первый и последний раз, когда была сделана покупка, сравнивая ее с максимальной датой, выбранной пользователем,

=max(OrderDate)

в расширенном поиске в нашем Set Analysis.

Если первая дата, когда покупка была совершена клиентом, составляет менее 30 дней, клиент считается новым, а если последняя дата, когда была сделана покупка, составляет от 60 до 120 дней, клиент считается потерянным. Наши полученные выражения выглядят так.

Новые клиенты

count({$<Year=, Month=, YearMonth=,Customer={«=min({$<Sales={‘>0’}, Year=, Month=, YearMonth=, OrderDate={‘<=$(=max(OrderDate))’}>} OrderDate)>=$(=max(OrderDate)-30)»}>} distinct Customer)

Потерянные клиенты

count({$<Year=, Month=, YearMonth=,Customer={«=max({$<Sales={‘>0’}, Year=, Month=, YearMonth=, OrderDate={‘<=$(=max(OrderDate))’}>} OrderDate)< $(=max(OrderDate)-60) and max({$<Sales={‘>0’}, Year=, Month=, YearMonth=, OrderDate={‘<=$(=max(OrderDate))’}>} OrderDate)>= $(=max(OrderDate)-120)»}>} distinct Customer)

Обратите внимание, что мы использовали двойные кавычки («), чтобы окружить вложенное расширенное выражение поиска. Кроме того, важно помнить, что мы должны повторять игнорируемые поля (например, Year, Month и YearMonth) как во внешнем, так и вложенном Set Analysis.

Другими замечательными индикаторами, которые можно получить аналогичным образом, являются количество восстановленных и подверженных риску клиентов.

 

Учебный центр по технологиям анализа данных и BI: расписание/запись на учебные курсы, тестирование разработчиков — https://education.biconsult.ru/
Присоединяйтесь к QUBIC – сообщество профессионалов в области BI! Наши страницы в соц.сетях – расписание учебных курсов, бесплатные учебные материалы, анонсы мероприятий: https://vk.com/club165575964 и https://www.facebook.com/qubicspb
Неофициальный форум разработчиков QlikView & Qlik Sense Russian forum
Канал на Youtube – много обучающих видео и записи вебинаров
Готовые решения “Конструктор финансовой отчетности” и “Анализ продаж

7 простых способов облагораживания дэшбордов

Простые секреты для улучшения визуализации данных

Безобразный дэшборд может превратить ваши идиллические мечты о визуализации данных в зловещие кошмары, и это вопрос не просто эстетического предпочтения. Если пользовательский интерфейс загроможден, дезорганизован или полностью исключает вашу способность воспринимать и использовать данные, аналитика будет серьезно нарушена.

На этой неделе я раскрою семь моих главных секретов, которые каждый может использовать с целью облагораживания своего «уродливого детища» и придать визуальному взаимодействию больше эффектности.

1. Больше белого пространстваЕсли в вашей аудитории нет страдающих от боязни пустоты, вам нужно воспользоваться белым пространством. Исследование художественного и субъективного восприятия показало, что пустое пространство облегчает распознавание информации, демонстрирует отсутствие информации и контекстуализирует данные, чтобы прояснить резкие отклонения и придать значение размерам элементов.

Создание пробелов в любой визуализации данных или отчете – самый простой способ выделить наиболее важные данные. Старайтесь избегать темного фона, который может конкурировать с цветами диаграммы или усложнить просмотр текста. Не помню, когда мы в последний раз создавали визуализацию с цветным фоном! Сначала это может быть привлекательно, но со временем цветные фоны могут послужить отвлекающими факторами.

2. Уберите беспорядок

Беспорядок можно определить как дезорганизованные визуальные элементы, такие как избыточные строки в диаграммах и повторяющиеся метки, которые обычно скрывают структуру данных. По мнению некоторых исследователей: «Даже в небольшом наборе данных беспорядок может затруднить определение структуры и выявление взаимосвязей». Сделайте все проще, не перегружая правое полушарие мозга наблюдателя визуальными данными, которые на самом деле не несут полезной информации.

Вот перечень наиболее распространенных типов беспорядка, которых следует избегать:

  1. Удалите ненужный текст в диаграммах. — Например, вы можете удалить значения по оси x или y, просто указав значения непосредственно на диаграммах или строках диаграммы.
  2. Сведите цвета диаграммы до минимума. – Сосредоточьтесь на выделении на диаграмме исключений, а не всех значений.
  3. Проверьте окружение диаграммы. – Когда дело доходит до размещения диаграмм — меньше – это больше. Наложение нескольких диаграмм на экран затрудняет определение пользователем той информации, которая является важной. Использование микродиаграмм, больших значений и значков может обеспечить отсутствие перегруженности пользователя подробными диаграммами.
  4. Ограничение размеров таблиц. — Строки и столбцы предназначены для отчетов. Когда дело доходит до визуализации, ограничьте длину таблицы не более чем в пять строк. Старайтесь избегать использования линий между таблицами, которые отвлекают и не несут в себе значения.

3. Добавьте иконки

Иконки передают общее понятие более сжато, чем блок текста. Во время одного из исследований, представленных на третьей Международной конференции IEEE по интеллектуальному анализу данных, было отмечено, что организованные значки и глифы могут облегчить зрителям восприятие многомерных наборов данных. К счастью, в Интернете есть много бесплатных ресурсов иконок, в том числе:

Разумеется, эти ресурсы нужно использовать с умом, поэтому ознакомьтесь с этими замечательными примерами того, как использование иконок может сделать сложные наборы данных более четкими:

Мы используем иконки в двух случаях: 1) при наличии доступного пространства и 2) когда это помогает лучше передать смысл. Одна из наших любимых иконок – иконка большого пальца. Мы используем ее для представления лидеров и аутсайдеров. Благодаря Facebook (нравится или не нравится), эти иконки известны во всем мире, и пользователи сразу понимают, что они означают.

4. Используйте набор цветовой палитры

Используйте цвета умеренно. Серые, синие и другие нейтральные тона легко сопоставляются, а цвета RAG (красный, янтарный и зеленый) хороши для выделения каких-либо исключений. И главное – сохранение простой палитры облегчает выбор контекстно-зависимых оттенков, что важно; Исследования в Гарварде показывают, что семантически резонансные цвета облегчают восприятие данных.

Мы стараемся использовать один из двух методов для выбора цветов:

  1. Запросить набор брендовых цветов у клиента (в отделе маркетинга)
  2. Используя сайты, такие как Color Scheme Designer или Adobe Color Wheel

5. Заменяйте сложные диаграммы простыми

Пауки, водопады и 3D-визуализации привлекательны, но их сложнее расшифровать. Психологи говорят, что сложные графики требуют больших различий для пользователей, чтобы различать данные и формы. Так что придерживайтесь классики, например, столбиков, линий, и искр.

Есть практическое правило, которое заключается в том, чтобы избегать «экзотических» графиков. На этапе создания макета они отлично выглядят благодаря разнообразию, которое они вносят в визуализацию как по текстуре, так и по цвету, но со временем они становятся ненужным довеском в сознании пользователя; они отнимают слишком много времени для восприятия, поэтому придерживайтесь основ. Подобно иконкам, большинство пользователей понимают использование столбиковой или линейной диаграммы, не требуя объяснений. Не нужно изобретать велосипед.

6. Будьте последовательными

Читаемый BI дэшборд поддерживает согласованность в отношении размеров текста, выравнивания диаграмм, форм, меток, заголовков и других элементов. Как отмечает Web Development Group, «непоследовательные элементы запутывают читателя».

Большинство инструментов BI имеют сетки или параметры автоматического выравнивания в своих панелях инструментов, которые делают последовательность легкой. Используйте их. Хотя небольшие ошибки размещения могут казаться невидимыми пользователю, мозг распознает их подсознательно и это может снизить возможность пользователя сосредотачиваться на представленных данных. Вот почему в наших семинарах по визуальному представлению информации мы используем установленную структуру для наших макетов.

Форма макетной структуры BI дэшборда

Мы призываем всех участников использовать наши шаблоны, чтобы избежать «ноу-хау», необходимых для создания идеального макета. Постоянство, когда дело доходит до визуализации данных, ассоциируется с «чистым» видом.

7. Разработка, ориентированная, в первую очередь, на мобильные устройства

То, что отлично выглядит на компьютере, может показаться достаточно искаженным на смартфоне или планшете. Поскольку вы, в конечном счете ограничены размерами мобильных устройств, облагородьте визуализацию данных, разработав интерфейс, макет и другие факторы, связанные с мобильным экраном не менее 10 дюймов.

Менталитет проектирования мобильных устройств начался с iPhone, но теперь общепризнанным фактом является то, что если ваши визуализации данных или отчеты не работают на мобильном устройстве, это негативно скажется на общем восприятии пользователем. Хуже всего, пользователи будут просто видеть в этом устарелость и искать другие решения. Хотя некоторые организации и избегают мобильного доступа к данным из соображений безопасности, это можно рассматривать как повод оставаться в «темном веке». Организации, которые не охватывают мобильные устройства, могут оказаться в будущем ненужными в BI.

Учебный центр по технологиям анализа данных и BI: расписание/запись на учебные курсы, тестирование разработчиков — https://education.biconsult.ru/

Присоединяйтесь к QUBIC – сообщество профессионалов в области BI! Наши страницы в соц.сетях – расписание учебных курсов, бесплатные учебные материалы, анонсы мероприятий: https://vk.com/club165575964 и https://www.facebook.com/qubicspb

Неофициальный форум разработчиков QlikView & Qlik Sense Russian forum

Канал на Youtube – много обучающих видео и записи вебинаров

Готовые решения “Конструктор финансовой отчетности” и “Анализ продаж

10 трендов в бизнес-аналитике

Темпы и эволюция решений бизнес-аналитики означают, что то, что работает сегодня, может потребовать улучшения завтра. От обработки естественного языка до роста страхования данных мы опросили клиентов и сотрудников Tableau, чтобы определить 10 влиятельных тенденций в 2018 году. Независимо от того, являетесь ли вы специалистом в сфере данных, ИТ-специалистом или руководителем в BI компании, эти тенденции акцентируют стратегические приоритеты, которые могут помочь вашей организации выйти на новый уровень.

1.  Не бойтесь искусственного интеллекта

Как машинное обучение поможет аналитику

Популярная культура подпитывает мрачный взгляд на то, что может сделать машинное обучение. Но в то время как исследования и технологии продолжают улучшаться, машинное обучение быстро становится ценным дополнением для аналитика. Фактически, машинное обучение является конечным помощником аналитика.

Представьте, что вам нужно быстро взглянуть на влияние изменения цены на данный продукт. Для этого вы будете использовать линейную регрессию для своих данных. До появления Excel, R или Tableau вы должны были делать это вручную, и процесс занимал часы. Благодаря машинному обучению вы можете увидеть объем потребления продукта в считанные минуты, если не секунды. Как аналитику, вам не нужно проходить через этот процесс, и вы можете перейти к следующему вопросу — были ли месяцы более высокого потребления из-за внешнего фактора, такого как праздник? Был ли новый релиз? Были ли новостные сообщения, влияющие на продажи или узнавание продукта? Вы не думаете о том, как бы вы хотели потратить больше времени на совершенствование регрессионной модели.

Существует два способа, с помощью которых машинное обучение может помочь аналитику. Во-первых, это эффективность. В приведенном выше примере аналитик не тратит драгоценное время на базовую математику. У аналитика теперь больше времени, чтобы подумать о бизнес-последствиях и о следующих логических шагах. Во-вторых, это помогает аналитику исследовать и оставаться в потоке анализа данных, потому что ему больше не нужно останавливаться и проверять числа. Вместо этого аналитик задает следующий вопрос. Инженер-программист Райан Аталла описывает эту ситуацию так: «Машинное обучение помогает вам смотреть под множеством камней, когда вам нужна помощь в получении ответа».

Способность машинного обучения помочь аналитику неоспорима, но важно признать, что оно должен быть принято, когда есть четко определенные результаты. «Машинное обучение не очень хорошо, когда ваши данные субъективны» — говорит Эндрю Виньо, менеджер по персоналу Tableau.  Например, при проведении опроса для клиентов об удовлетворенности продукта машинное обучение не всегда может подобрать качественные слова.

Кроме того, аналитик должен понимать показатели успеха для данных, для того, чтобы работать с ними. Другими словами, входящая информация в машину не делает результаты значимыми. Только человек может понять, было ли применено правильное количество контекста, а это значит, что машинное обучение невозможно изолировать (без понимания модели и того, какие должны быть входы / выходы). Несмотря на то, что может возникнуть проблема с заменой, машинное обучение фактически перезагрузит аналитиков и сделает их более эффективными, точными и более эффективными для бизнеса. Вместо того чтобы бояться технологии машинного обучения, воспользуйтесь возможностями, которые она представляет.

IDC прогнозирует, что к 2020 году доходы от систем AI и машинного обучения составят 46 миллиардов долларов.

В 2020 году AI станет позитивным чистым мотиватором работы, создав 2,3 миллиона рабочих мест, исключив только 1,8 миллиона рабочих мест. (Gartner)

2.  Влияние свободных искусств

Человеческое влияние свободных искусств в индустрии аналитики

Поскольку индустрия аналитики продолжает искать квалифицированных работников с данными, и организации стремятся повысить свою аналитическую команду, у нас должно быть много талантов под рукой. Мы знакомы с тем, как искусство и сторителлинг помогли оказать влияние на отрасль аналитики данных. Это не сюрприз. Интересным является то, как технические аспекты создания аналитического дашборда, ранее доступные только для ИТ и опытных пользователей, воспринимаются теперь пользователями, которые понимают искусство сторителлинга — навык, пришедший в основном из гуманитарных наук. Кроме того, организации уделяют больше внимания найму работников, которые могут использовать данные и идеи, чтобы влиять на изменения и управлять трансформацией посредством искусства и убеждений, не только разбирающихся в самой аналитике.

По мере того как технологические платформы становятся проще в использовании, внимание к техническим специальностям уменьшается. Каждый может играть с данными, и при этом особых технических навыков не требуется. Именно на этом этапе люди с более широкими навыками, в том числе со знанием гуманитарных наук, сталкиваются с трудностями, когда отрасли и организации испытывают нехватку работников данных.  Поскольку все больше организаций сосредотачиваются на аналитике данных в качестве приоритета бизнеса, эти работники данных с гуманитарными знаниями дают компаниям понять, что расширение возможностей такого вида рабочей силы является конкурентным преимуществом.

Мы не только видим широкую базовую привлекательность, чтобы помочь нанять новое поколение работников  с данными, мы также наблюдали несколько случаев, когда компаниями, основанных на технологиях, руководили или являлись основателями люди с гуманитарным образованием. Сюда входят основатели и руководители Slack, LinkedIn, PayPal, Pinterest и ряда других высокопроизводительных технологических компаний.

Одним из мощных примеров привлечения гуманитарных наук к преимущественно технологической компании является недавняя книга Скотта Хартли «the Fuzzy and the Techie». Nissan нанял антрополога Мелиссу Чефкин, чтобы возглавить исследование компании в области взаимодействия человека и машины, а именно взаимодействия между самоуправляемыми автомобилями и людьми. Технология, обеспечивающая самоуправление транспортным средствам, прошла долгий путь, но по-прежнему сталкивается с препятствиями, сохраняя смешанные человеко-машинные среды. Используя в качестве примера систему four-way stop, люди обычно анализируют ситуации в каждом конкретном случае, и этому невозможно научить машину. Чтобы помочь в борьбе с этим, Чефкин было поручено использовать свой антропологический фон для выявления закономерностей поведения людей, которые могут лучше научить эти самоуправляемые автомобили, образцами, и, в свою очередь, сообщать об этом людям, путешествующим в машине.

Поскольку аналитика развивается, чтобы содержать в себе больше искусства и меньше науки, основное внимание было сосредоточено на простом предоставлении данных для создания именно тех данных, которые неизбежно приводят к принятию решений. Организации охватывают данные в гораздо большем масштабе, чем когда-либо прежде, и естественная прогрессия означает больший акцент на сторителлинге и формировании данных. Золотой век сторителлинга выпал на нас, и где-то внутри вашей организации аналитик данных ждет, чтобы раскрыть ваше следующее важное понимание.

Выпускники гуманитарных специальностей находят работу на 10% быстрее, чем выпускники технических специальностей. (LinkedIn)

Одна треть всех руководителей Fortune 500 имеет степени гуманитарных наук. (Fast Company)

 

3.  Перспектива NLP

Перспектива обработки естественного языка

В 2018-м году будет расти распространённость, сложность и повсеместность обработки естественного языка (NLP). Поскольку разработчики и инженеры продолжают совершенствовать свое понимание NLP, интеграция его в нереализованные области также будет расти. Растущая популярность Amazon Alexa, Google Home и Microsoft Cortana подпитывает ожидания людей, что они могут говорить со своим программным обеспечением, и оно поймет, что делать. Например, указав команду «Alexa, играй «Yellow Submarine», и вот песня уже звучит на вашей кухне во время обеда. Эта же концепция также применяется к данным, что облегчает каждому задавать вопросы и анализировать данные, которые у них есть.

Gartner прогнозирует к 2020 году, что 50 процентов аналитических запросов будут генерироваться посредством поиска, NLP или голоса. Это означает, что для генерального директора будет намного проще попросить его мобильное устройство рассказать ему: «Общий объем продаж по клиентам, которые купили основные товары в Нью-Йорке», затем отфильтровать «заказы за последние 30 дней», а затем выделить группу «отдел владельца проекта». Или директор школы вашего ребенка может спросить: «Каков средний балл студентов в этом году», затем отфильтровать «учеников 8-го класса» и группу по «предмету учителя». NLP предоставит людям возможность задавать более тонкие вопросы о данных и получать соответствующие ответы, которые приводят к улучшению повседневных идей и решений.

Одновременно разработчики и инженеры будут добиваться больших успехов в обучении и понимании того, как люди используют NLP. Они будут исследовать, как люди задают вопросы, начиная от однозначного вопроса («какой продукт имел наибольший объем продаж?») до исследования («Я не знаю, что мои данные могут мне рассказать — как работает мой отдел?»). Как отмечает Райан Аталла, инженер-программист Tableau, «это поведение очень связано с контекстом, в котором задается вопрос». Если конечный пользователь использует мобильный телефон, он с большей вероятностью задаст вопрос, который генерирует мгновенное решение, тогда как если они сидят за столом, глядя на дашборд, они, вероятно, хотят проанализировать глубже и изучить более глубокий вопрос.

Наибольшая ценность от аналитики будет получена за счет понимания разнообразных рабочих процессов, которые NLP может увеличить. Как говорит Видья Сетлур, инженер-программист Tableau, «Неоднозначность — это сложная проблема», поэтому понимание рабочих процессов становится более важным, чем ввод конкретного вопроса. Когда есть несколько способов задать один и тот же вопрос о данных (например, «Какой объем продаж был самым большим в этом квартале?» Или «У кого больше всего продаж в этом квартале?»), конечный пользователь не хочет думать о правильности вопроса, он просто хочет ответа. Следовательно, возможности будут возрастать не от размещения NLP в каждой ситуации, а в том, чтобы сделать его доступным в правильных рабочих процессах, чтобы он стал второй натуральной копией человека, использующего его.

К 2019 году 75% работников, чьи ежедневные задачи связаны с использованием корпоративных приложений, будут иметь доступ к интеллектуальным персональным помощникам для повышения их квалификации и опыта. (IDC)

К 2021 году более 50% предприятий будут тратить на ботов и создание чатботов за год больше, чем на развитие традиционных мобильных приложений. (Gartner)

 

 

4.  Дебаты о Multi-Cloud

Если ваша организация изучает и оценивает стратегию с несколькими облаками в 2018 году, вы не одиноки.

Существует ряд организаций, которые переносят свои данные в облако и перемещают туда свои основные приложения», — говорит главный сотрудник по продуктам Франсуа Айенстат. Мы видим, что пользователи адаптируются к облаку намного быстрее, чем когда-либо.

Согласно недавнему исследованию Gartner, «стратегия мульти облака станет общей стратегией для 70-ти процентов предприятий к 2019 году, по сравнению с менее чем 10-ти процентами сегодня». Клиенты становятся все более чувствительными к тому, чтобы быть заблокированными в одном устаревшем программном решении, которое не соответствует их будущим потребностям. Тем не менее, переключение и миграции стали относительно проще с аналогичными API-интерфейсами и с использованием открытых стандартов, таких как Linux, Postgres, MySQL и других.

Вероятно, ваша организация также оценивает, как проектируются и запускаются центры обработки данных. Ваш ИТ-отдел оценивает хостинговые среды на основе рисков, сложности, скорости и стоимости всех факторов, которые увеличивают сложность поиска одного, единого решения для нужд вашей организации.

Оценка и внедрение среды с несколькими облаками может помочь определить, кто обеспечивает лучшую производительность и поддержку вашей ситуации. Согласно Boston Herald, GE переориентировала свою стратегию облачного хостинга на использование как Microsoft Azure, так и Amazon Web Services, с целью понять наиболее эффективную хостинговую среду и посмотреть, какой контракт обеспечивает самую низкую стоимость для своих клиентов.

Но мультиоблачная тенденция не приходит без здорового осознания достоинств и проблем перехода к этому типу среды. Хотя гибкость является плюсом, среда с несколькими облаками увеличивает накладные расходы за счет разделения рабочих нагрузок вашей организации на нескольких поставщиков. И среда с несколькими облаками вынуждает внутреннюю группу разработчиков изучать несколько платформ и внедрять дополнительные процессы управления в зависимости от условий, которые они должны поддерживать.

Кроме того, стратегия с несколькими облаками может потенциально снизить покупательную способность компании или организации. Если компания разделяет то, что они покупают у нескольких провайдеров, это повредит их скидкам на объем. Это создает модель, в которой компания покупает меньше по худшей цене.

Опросы и статистические данные, такие как Gartner, указывают на то, что внедрение нескольких облаков растет. Однако они не указывают, какая часть данных решений была принята. Во многих случаях с несколькими облаками организации используют одного поставщиках для большинства своих потребностей и очень мало для других. Но большинство из этих случаев использования приходится на внедрение второй облачной среды размещения в качестве резервной копии в случае некомпетентности или сбоя основной облачной среды размещения.

В то время как растет процент внедрения нескольких облаков в 2018 году, организациям придется маневрировать через нюанс оценки того, как их стратегия определяет, какая часть каждой облачной платформы была принята, внутреннее использование и требования к рабочей нагрузке и затраты на внедрение.

70% предприятий будут внедрять стратегию с несколькими облаками к 2019 году (Gartner)

74% финансовых директоров технологических компаний заявили, что облачные вычисления окажут самое заметное влияние на их бизнес в 2017 году. (Forbes)

5.  Возвышение директоров по данным (CDO)

Данные и аналитика становятся основой для каждой организации. Это не подлежит обсуждению. По мере развития организаций они уделяют первоочередное внимание новому уровню стратегической направленности и подотчетности в отношении их аналитики.

Исторически сложилось так, что большинство усилий в области бизнес-аналитики были поручены директору по IT (CIO), который курировал стандартизацию, консолидацию и управление данными по всей организации, что требовало последовательной отчетности. Это поставило инициативы бизнес-аналитики (управление данными, построение аналитических моделей и т. д.) в конкуренцию с другими стратегическими инициативами (такими как ИТ-архитектура, системная безопасность или сетевая стратегия) в сфере компетенции CIO и часто препятствовало успеху и влиянию бизнес-аналитики.

В некоторых случаях разрыв между CIO и бизнесом формировался благодаря быстроте понимания и безопасности данных и управлению ими. Таким образом, чтобы получить эффективные данные из данных посредством инвестиций в аналитику, организации все чаще осознают необходимость подотчетности топ-менеджмента для создания культуры аналитики. Для растущего числа организаций ответ заключается в назначении директора по данным (CDO) или главного аналитика (CAO) для изменения бизнес-процессов, преодоления культурных барьеров и передачи ценности аналитики на всех уровнях организации. Это позволяет CIO более ориентированно смотреть на такие вещи, как безопасность данных.

Тот факт, что CDO и / или CAO назначаются и берут ответственность за влияние на бизнес и улучшенные результаты, также демонстрирует стратегическую ценность данных и аналитики в современных организациях. Теперь на уровне первых лиц компании существует активное обсуждение  того, как развернуть стратегию аналитики. Вместо того чтобы ждать запросов на конкретный отчет, CDO спрашивают: «Как мы можем предвидеть или быстро адаптироваться к бизнес-запросам?»

Чтобы наилучшим образом помочь высокоэффективной команде в рамках этой позиции на уровне руководства, организации выделяют больше денег и ресурсов. По словам Gartner, 80 процентов крупных предприятий будут иметь офис CDO, полностью реализованный к 2020 году. В настоящее время среднее число сотрудников в офисе составляет 38, но 66 процентов опрошенных организаций ожидают, что выделенный бюджет для офиса будет расти.

Джош Паренто, директор по маркетинговой информации Tableau, отмечает, что роль CDO является «ориентированной на результат». Он утверждает, что «речь идет не только о помещении данных в хранилище данных, они должны определить, что такое использование, и убедиться, что получают ценность». Этот итоговый фокус имеет решающее значение, поскольку он согласуется с тремя основными целями в опросе CDO Gartner 2016 года, который включает в себя большую близость клиента, повышенное конкурентное преимущество и повышение эффективности.

Эти цели подпитывают такие компании, как Wells Fargo, IBM, Aetna и Ancestry для внедрения CDO с намерением перенести свою стратегию данных на следующий уровень, в результате чего роль Chief Data Officer станет основным элементом бизнеса в 2018 году.

К 2019 году 90% крупных компаний будут иметь CDO. (Gartner)

К 2020 году 50% ведущих организаций будут иметь CDO с уровнем влияния на стратегию и авторитетом, сравнимыми с CIO.

6.  Управление посредством краудсорсинга

Будущее управления данными – краудсорсинг

Современная бизнес-аналитика продвигалась от изоляции данных и контента до расширения возможностей бизнес-пользователей во всем мире для использования надежных, управляемых  и понятных данных. И поскольку люди учатся использовать данные в большем количестве ситуаций, их вклад в лучшие модели управления стал грандиозной силой внутри организаций.

Недостаточно сказать, что аналитика самообслуживания нарушила мир бизнес-аналитики. Парадигма переключилась на всех, у кого была возможность создавать аналитику, ведущую к заданию и ответу на критические вопросы в организации. Такое же вмешательство происходит с управлением. Поскольку аналитика самообслуживания расширяется, воронка ценных перспектив и информации начинает вдохновлять новые и инновационные способы внедрения управления.

Управление — это использование мудрости толпы, чтобы получить нужные данные от правильного человека, так же, как и заблокировать данные не от того человека.

Для бизнес-пользователя последняя ответственность, которую они хотят, — это безопасность данных. Правильная политика управления позволяет бизнес-пользователю задавать вопросы и получать ответы, позволяя им находить нужные данные в необходимый момент времени.

Бизнес-аналитика и стратегическая аналитика будут охватывать современную модель управления: IT-отделы и инженеры-разработчики данных будут изучать и готовить надежные источники данных, а при использовании самообслуживания конечные пользователи будут иметь возможность исследовать надежные и доверенные данные.

Процессы сверху вниз, направленные только на управление IT, будут отброшены в пользу совместного процесса разработки, сочетающего таланты IT и конечных пользователей. Вместе они идентифицируют данные, которые наиболее важны для управления и создания правил и процессов, которые максимизируют бизнес-ценность аналитики без ущерба для безопасности.

45% граждан считают, что менее половины своих отчетов содержат данные хорошего качества. (Collibra)

61% руководителей считают, что принятие решений собственными силами компании производится нечасто, или редко управляются данными. (PwC)

7.  Страхование данных

Уязвимость приводит к росту страхования данных

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

Согласно исследованию Института Понэмона, проведенному в 2017 году, средняя стоимость нарушения данных оценивалась в 3,62 млн. долл. США.

Но могут ли компании делать все возможное для защиты и страхования своих данных? Одной из отраслей, быстро растущей в ответ на нарушения данных, является рынок страхования кибербезопасности. Эта отрасль продемонстрировала 30-процентный рост в годовом исчислении, а к 2020 году эта отрасль достигнет 5,6 млрд. долл. США в год. (AON)

Кибер- и страхование частной жизни покрывает ответственность бизнеса за нарушения данных, когда персональная информация клиента подвергается угрозе или украдена хакером.

Однако даже с ростом рынка и продолжающейся угрозой нарушения данных только 15 процентов компаний США имеют страховой полис, который охватывает нарушения данных и кибербезопасность. Кроме того, эти 15 процентов в основном состоят из крупных, устойчивых финансовых учреждений.

Необходимость в политике в отношении финансовых учреждений очевидна. Но тенденция будет расширяться и в других направлениях, потому что никто не застрахован от угрозы нарушения данных.

Дуг Лэни, аналитик Gartner недавно написал книгу под названием «Инфономика: как монетизировать, управлять и измерять информацию для конкурентного преимущества». Он дает различные модели того, как компании во всех отраслях промышленности могут анализировать ценность своих данных как в нефинансовых, так и в финансовых моделях.

Нефинансовые модели ориентированы на внутреннюю ценность, стоимость бизнеса и значение производительности данных. Эти значения могут измерять уникальность, точность, релевантность, внутреннюю эффективность и общее влияние на ее использование.

Финансовые модели фокусируются на стоимости, экономической ценности и рыночной стоимости данных. Эти значения могут измерять стоимость приобретения данных, администрирования данных внутри страны и стоимости продажи или лицензирования ваших данных.

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

Средняя стоимость нарушения данных оценивалась в 3,62 млн. долл. США. (Ponemon)

Только 15% американских компаний имеют страховой полис специально для своих данных. (Ponemon)

 

8.  Роль инженера данных

Повышенная значимость роли инженера данных

Вы не можете создать панель мониторинга, не создав диаграммы, чтобы понять историю, которую вы пытаетесь установить. Другой принцип, который вы, вероятно, знаете: у вас не может быть надежного источника данных, если вы не понимаете сначала тип данных, которые входят в систему, и откуда они получены.

Инженеры по данным будут продолжать оставаться неотъемлемой частью организации, чтобы использовать данные для принятия правильных решений в отношении своего бизнеса. В период с 2013 по 2015 год число инженеров данных выросло более чем в два раза. А по состоянию на октябрь 2017 года на сайте LinkedIn было более 2500 открытых позиций с «инженером данных» в названии, что свидетельствует о растущем и продолжающемся спросе на эту специальность.

Итак, какова эта роль и почему она так важна? Инженер данных отвечает за проектирование, создание и управление базами данных операций и аналитики бизнеса. Другими словами, они несут ответственность за извлечение данных из основополагающих систем бизнеса таким образом, чтобы их можно было использовать для создания идей и решений. По мере увеличения скорости передачи данных и емкости хранения данных становится все более критичным тот, кто обладает глубокими техническими знаниями о разных системах, архитектуре и способности понимать, что хочет или в чем нуждается бизнес.

Тем не менее, роль инженера данных требует уникального набора навыков. Им нужно понять бэкэнд, что содержится в данных и как он может обслуживать бизнес-пользователя. Инженер данных также должен разработать технические решения, позволяющие использовать данные.

По словам Майкла Эша, старшего рекрутера Tableau: «Я занимаюсь наймом технических специалистов более 17 лет. И неудивительно, что данные и емкость хранилища продолжают расти — я видел, как это произошло в результате смены парадигм из-за научно-технического прогресса. Данные всегда нуждаются в настройке. Компаниям необходимо подключиться к этому. Они должны погрузиться в конкретные данные для принятия бизнес-решений. Инженер данных определенно будет продолжать расти как роль».

Исследование, проведенное Gartner 2016 года, показало, что организации-респонденты теряют в среднем 9,7 млн. долл. США ежегодно в результате низкого качества данных.

Ученые-аналитики и аналитики данных могут потратить до 80% времени на очистку и подготовку данных. (TechRepublic)

9.  Местоположение вещей

Местоположение вещей будет стимулировать инновации в сфере интернета вещей (IoT)

Недостаточно сказать, что распространение интернета вещей привело к монументальному росту числа подключенных устройств, которые мы видим в мире. Все эти устройства взаимодействуют друг с другом и получают данные, что делает их более связанными. Фактически, Gartner прогнозирует, что к 2020 году количество устройств IoT, доступных для потребителей, более чем удвоится (до 20,4 млрд. IoT-устройств).

Даже при таком росте варианты использования и реализации данных IoT не соответствовали одному и тому же желательному пути. У компаний есть опасения по поводу безопасности, но большинство из них не имеют необходимых организационных навыков или внутренней технической инфраструктуры с другими приложениями и платформами для поддержки данных IoT.

Одной из позитивных тенденций, которые мы наблюдаем, является использование и преимущества использования данных на основе местоположения с помощью устройств IoT. Эта подкатегория, называемая «местоположением вещей», обеспечивает IoT-устройства чувствительностью и передает их географическое положение. Зная, где находится устройство IoT, оно позволяет нам добавлять контекст, лучше понимать, что происходит, и то, что мы прогнозируем, произойдет в определенном месте.

Для компаний и организаций, стремящихся захватить этот сбор данных, мы видим, что используются разные технологии. Например, больницы, магазины и отели начали использовать технологию Bluetooth Low Energy (BLE) для внутренних служб определения местоположения, которые, как правило, затрудняют для GPS предоставление контекстного местоположения. Эта технология может использоваться для отслеживания конкретных активов, людей и даже взаимодействия с мобильными устройствами, такими как умные часы, чтобы обеспечить персонализированный опыт.

Поскольку это касается анализа данных, данные, основанные на местоположении, могут рассматриваться как входные данные. Если данные доступны, аналитики могут включить эту информацию в свой анализ, чтобы лучше понять, что происходит, где это происходит, и что они должны ожидать в контекстной области.

Количество конечных точек устройств IoT к 2020 году возрастёт до 30 млрд. (IDC)

Ожидается взрывной рост IoT, к концу 2020 года рынок превысит 5 миллиардов долларов. (Gartner)

10.  Академические инвестиции

Университеты удваивают программы по науке о данных и аналитике

Университет штата Северная Каролина является родиной первой программы «Магистр научной аналитики». Эта программа проводится институте усовершенствованной аналитики (IAA) — центре данных, целью которого является «создание лучших специалистов в мире по аналитике — людей, которые освоили сложные методы и инструменты для крупномасштабного моделирования данных [и], у которых есть страсть для решения сложных проблем … ». Как первая в своем роде, государственная программа штата предвидела заметные инвестиции академических наук в учебную программу по науке и аналитике данных.

В начале этого года Калифорнийский университет в Сан-Диего запустил первый для своего учреждения бакалавриат по науке о данных. Они не останавились на достигнутом. Университет также планирует создать институт науки о данных. Следуя этому примеру,  университеты Berkeley, Davis и Santa Cruz увеличили свои программы по науке о данных и аналитике для студентов, спрос которых превышает ожидания.

Согласно недавнему исследованию PwC, 69 процентов работодателей к 2021 году потребуют знания в области науки и аналитики данных от соискателей. В 2017 году Glassdoor также сообщил, что «наука о данных» второй год подряд является «лучшей работой».

По мере роста спроса со стороны работодателей необходимость заполнения воронки высококвалифицированных специалистов по данным становится все более актуальной. Но есть реальный разрыв. В том же отчете PwC говорится, что только 23 процента выпускников колледжей будут обладать необходимыми навыками для конкуренции на требуемом для работодателей уровне. Недавний опрос MIT показал, что 40% менеджеров испытывают трудности с наймом аналитических талантов.

Развитые навыки аналитики уже не являются необязательными; они являются необходимыми. В 2018 году будет более строгий подход к тому, чтобы ученики обладали навыками для присоединения к современной рабочей силе. И так как компании продолжают совершенствовать свои данные, чтобы извлечь максимальную пользу, спрос на высокопрофессиональную рабочую силу будет существовать и расти.

К 2021 году 69% работодателей будут требовать аналитическую науку в качестве критического навыка от кандидатов на работу. (PWC)

Недавний опрос MIT показал, что 40% менеджеров испытывают трудности с наймом аналитических талантов. (MIT)

Учебный центр по технологиям анализа данных и BI: расписание/запись на учебные курсы, тестирование разработчиков — https://education.biconsult.ru/

Присоединяйтесь к QUBIC – сообщество профессионалов в области BI! Наши страницы в соц.сетях – расписание учебных курсов, бесплатные учебные материалы, анонсы мероприятий: https://vk.com/club165575964 и https://www.facebook.com/qubicspb

Неофициальный форум разработчиков QlikView & Qlik Sense Russian forum

Канал на Youtube – много обучающих видео и записи вебинаров

Готовые решения “Конструктор финансовой отчетности” и “Анализ продаж

Tableau vs Qlik: сравнение инструментов визуализации данных Tableau и QlikView

Два из самых популярных инструментов визуализации данных — Tableau и Qlikview — являются наиболее широко используемыми инструментами, когда дело доходит до интерпретации сложных наборов данных. Выдающаяся комбинация анимированных графиков, инструментов графической обработки, возможностей BI для интерактивных аналитических, текстовых и интерактивных дашбордов, оба из которых обладают необычными функциями, что делает их отличными друг от друга. Tableau и Qlik всегда захватывали желанное место в магическом квадранте Gartner (и в 2018 тоже!). Давайте попробуем понять, как эти два инструмента отличаются друг от друга.

Прежде чем мы начнем, важно понять, что эти два являются высоко оцененными инструментами профессионалов и могут иметь плюсы и минусы в зависимости от того, как с ними работает пользователь. Например, Tableau — хороший вариант, если пользователь ищет удобный и простой для пользователя формат визуализации или масштабируемое программное решение, которое будет использоваться внутри организации. В то время как QlikView может быть хорошим вариантом в крупной организации, которая может потребовать многогранного программного обеспечения для изучения различных отделов.

QlikView: этот инструмент визуализации, представленный Qlik, представляет собой простой и легкий инструмент, который позволяет пользователю полностью управлять бизнесом. Он позволяет консолидировать, искать, визуализировать и анализировать все источники данных для получения полезных сведений о бизнесе. QlikView — это простой способ быстро получить ответы на наиболее важные бизнес-вопросы.

Один из самых популярных инструментов, он также занимает высокое место в плане лояльности клиентов, производительности, характеристик и качества. Он предлагает интегрированную платформу BI наряду с очень проницательными демонстрациями, учебными пособиями и мануалами, помогая пользователям легко ознакомиться с инструментом в кратчайшие сроки. Он поставляется с несколькими компонентами, такими как QlikView SERVER (QVS), QlikView Publisher (QVP).

Плюсы
1. Развертывание и конфигурация: Этот инструмент для быстрого развертывания и конфигурирования начинает создавать потрясающие отчеты в течение нескольких минут после установки.
2. Удобство и функциональность:
a. Легко изучается и не требует программирования для создания простых панелей.
b. Он очень ориентирован на пользователей и поскольку в нем множество функций визуализации — это дает пользователям быстрый доступ к содержанию данных.
3. Доступность: Qlikview не зависит от устройства и может быть легко доступен из любого места.
4. Возможность подключения к другим инструментам: Он объединяется с очень широким спектром источников данных, таких как Amazon Vectorwise, EC2 и Redshift, Cloudera Hadoop и Impala, Hortonworks Hadoop, HP Vertica, IBM Netezza, MicroStrategy, MS SQL Server, My SQL, ODBC, Par Accel, Salesforce, SAP, SAP Hana, Teradata и многие другие. Он также может подключаться к R с помощью интеграции API и с большими данными.
5. Участие сообщества: Он активно занимается сообществом и ресурсами, которые могут помочь в изучении этого программного обеспечения.
6. Скорость: Быстрый анализ обеспечивает быстрый результат и позволяет принимать решения намного быстрее по сравнению с традиционными методами.
7. Параметры поиска: Его ассоциативная технология упрощает моделирование данных. Просто введите любое слово в любом порядке в поле поиска, и оно покажет соединения и отношения между данными.
8. Расчет затрат: Он стоит дешевле по сравнению с Tableau. Он также бесплатен для персонального использования, что позволяет пользователю получить доступ к инструменту, не покупая его, например, в случае небольших организаций.
9. Хранение данных: Он оснащен эффективным хранилищем данных (форматы QVD) и имеет возможность выполнять хранение данных.

Минусы
1. Бесплатная лицензия поставляется с ограничением обмена документами.
2. Его структура может быть подавляющей с множеством вкладок, что затрудняет управление и понимание инструмента в первую очередь.
3. Он имеет некоторые дополнительные функции, которые не доступны без расширений.
4. Он требует времени на настройку, в отличие от Tableau.

Tableau: это инструмент для быстрого анализа и визуализации, был лидером рынка довольно долгое время. Возможности визуализации Tableau весьма разнообразны и очень интересны, что дает преимущество перед другими. Такие функции, как “облака слов”, “карты пузырьков”, “карты деревьев”, улучшают понимание и предоставляют различные варианты отображения информации. Компания заявляет, что более 54 000 счетов клиентов получают быстрые результаты с Tableau. Он имеет несколько компонентов, таких как Gateway / load balancer, сервер приложений, репозиторий, сервер VISQL, движок данных, backgrounder, сервер данных.
Преимущества
1. Развертывание: это легко развертываемый и настраиваемый инструмент начинает создавать потрясающие отчеты в течение нескольких минут после установки.
2. Юзабилити и функциональность:
a. Он не требует кодирования вообще, и весь интерфейс основан на перетаскивании, что делает инструмент простым в использовании и может эффективно использоваться теми, у кого мало технических знаний.
b. Его интерфейс прост, не заполнен слишком многими функциями на одной странице.
c. Он поставляется с возможностью сочетания наборов данных и совместной работы в режиме реального времени, что делает его очень желательной технологией бизнес-аналитики.
d. Tableau богата возможностями визуализации данных и представляет собой интерактивные отчеты и рекомендации.
3. Связь с другими инструментами:
a. Используя Tableau, вы можете легко подключиться к базе данных, сокращая время и усилия пользователя.
b. Он может интегрироваться с электронными таблицами, базами данных CSV, SQL, Cloudera Hadoop, Firebird, Google Analytics, Google BigQuery, Hortonworks Hadoop, HP Vertica, MS SQL Server, MySQL, Salesforce, Teradata и т. Д.
c. Он может связываться с R.
4. Доступность: Доступен на всех устройствах и доступен через Интернет.
5. Участие сообщества: Он активно занимается сообществом и ресурсами, чтобы помочь вам лучше изучить это программное обеспечение.
6. Скорость:
a. Tableau может создавать интерактивные визуализации и отчеты за считанные минуты, что делает его очень быстрым инструментом.
b. Он также ускоряет весь процесс, так как позволяет публиковать отчеты как в режиме онлайн, так и в автономном режиме.
7. Расчет стоимости: Частные версии поставляются с ценовым диапазоном от 999 долларов США до 1 999 долларов США в зависимости от доступа к данным.
8. Многомерное отображение:
a. Tableau очень эффективен при создании многомерных карт с помощью встроенной функции Geo-кодирования.
b. Гораздо проще создавать гео-пространственные дашборды.
9. Безопасность: Tableau осуществляет контроль за доступом к информации с помощью различных мер безопасности.

Минусы
1. Хотя он может интегрироваться со многими источниками данных, список короче, чем у QlikView.
2. Процесс экспорта данных довольно длительный.
3. Он не предоставляет функцию поиска контента по всем вашим данным.

FAQ по формулам, в т.ч. измерениям, в Qlik Sense/Qlik View часть 7

Q: В программе использую FieldValueCount, которая подсчитывает уникальные значения столба таблицы. А как подсчитать вообще все значения, по порядку. Вроде должно быть, RecNo и RowNo, если правильно подскажите как правильно их использовать.

A: Существует несколько функций осуществляющих подсчет.
Смотрим документацию по функциям агрегирования счетчиков

В вашем случае, если есть поле с уникальными значениями то выражение count(UnicumField) вернет число записей в таблице.

Q: 1. Существует задача, в которой необходимо сравнить продажи в разрезе Неделя-Год, и построить график данных продаж.

Т.к. неделя может относиться к разным годам и месяцам ( например 1-ая неделя 2015 года включает в себя даты декабря 2014 года), столкнулись с такой проблемой, что при выводе графика и сортировке периода по возрастанию эти недели разбиваются (что логично). При этом получаются «провалы» на графике.

Подскажите пожалуйста, возможно ли сделать так, чтобы такие недели не разбивались? Или какие настройки использовать для графиков при отображении такой информации? Или необходимо изменить настройки календаря?

2.Также существует следующая проблема в расчете , если мы работаем с неровной неделей:
если в расчет попадает неровная неделя (в неделю попадают два месяца), клик не учитывает дни предыдущего месяца.
Подскажите, как быть в данной ситуации.

A: Ну я вот разбиваю месяцы на целые недели (т.к. неделя, как и у вас является главной единицей измерения).
Месяц
Код: [Выделить]
=if(WeekDay( MonthStart(Floor(NACH_VREM)))>3,
Month(WeekStart(floor(NACH_VREM))),
Month(AddMonths(WeekStart((floor(NACH_VREM))),-1))
)

Где NACH_VREM — ваша дата (у меня формат timestamp, если просто date- можно убрать floor() ).

Таким образом в месяце получается всегда 28 или 35 дней, и недели всегда входят в него целиком. Неделя разбитая по 2м месяцам принимается относящейся к тому месяцу, куда входит четверг.

Для Года аналогично работает просто функция
week()

Q: добрый день! Подскажите, как из столбца простой таблицы сделать выборку по определенному значению, и чтобы значение при открытии таблицы было одно.

Проще говоря таблица со значениями 1,0,1,0. нужно чтобы выводилось постоянно значение 1

A: if ( измерение=1, измерение) в измерениях. И галку: скрыть значения когда null

Q: помогите, вопрос простой, а ответа не могу найти 🙂

загружаем таблицу:
дата подразделение продажи
1/1/15 А 100
2/1/15 А 110
можно ли со стороны qlik sense
построить так:
1. выбираем фильтр и добавляем в него измерение «дата»
2. добавляем таблицу и выбираем измерения «дата», «подразделение»
и меры «продажи» и «продажи за вчера»
3. щелкаем в фильтре дату «2/1/15»
4. в таблице получаем результат вида:
дата подразделение продажи продажи за вчера
2/1/15 А 110 100
вот что такого нужно написать в мере «продажи за вчера», чтобы там было 100
спасибо большое!

A:В этой теме косвенно уже затрагивали эту тему.
Например:
Код:
Sum({$
< Date = {'$(=Date(Max(Date)-1))'} >} [Value])
Вот только если измерение Дата, то этот вариант не пройдет.
Надо подумать.

Q: Вопрос по построению диаграммы, в частности линейного графика.
В качестве измерения у меня идет «Месяц-Год». В качестве выражения «Сумма продаж».
Подскажите, пожалуйста,как задать, чтобы всегда (вне зависимости от выборок) на графике отображение начиналось, например, с июня 2014 г. Не пойму, где и как прописать условие для измерения….

A: Данные отображаются по заданным выражениям.
Используйте анализ множеств для формирования необходимого набора данных на диаграмме.
Без учета выборки:
Код:
sum({1<[Date] = {">=01.06.2014″}>} Количество)
С учетом выборки:
Код:
sum({$<[Date] = {">=01.06.2014″}>} Количество)

Q: Данная тема косвенно затрагивалась здесь, но ответа я так и не нашла.

Допустим есть следующие данные по продажам:
янв фев мар
Товар1 10000р. 12000р. 15000р.
Товар2 5000 4000 5000

Необходимо рассчитать динамику продаж по каждому товару в марте, относительно февраля и января, т.е.:
мар-фев мар-янв
Товар1 3000 5000
Товар2 1000 0

Как это реализовать в QlikView? Как лучше всего работать с датами, как задавать предыдущие недели, месяца, года относительно выбранных?

A: Вот Вы и добрались до анализа множеств.
Рекомендую почитать на эту тему в официальной документации по Qlikview и по Sense на сайте help.qlik.com

Вариантов решения может быть несколько, в зависимости от задачи.
Можно задать интервал дат:
Код:
Sum({1<[Date] = {">=01.02.2014<=28.02.2014"}>} Количество)
Если используется календарь, то можно задать и так:
Код:
Sum({1<[_MonthSerial]={'2'},[Year]={'2014'}>} Количество)
Т.е. вычислить разницу между месяцами можно так:
Код:
Sum({1<[_MonthSerial]={'3'},[Year]={'2014'}>} Количество)-Sum({1<[_MonthSerial]={'1'},[Year]={'2014'}>} Количество)
или так:
Код:
Sum({1<[YearMonth] = {'201403'}>} Количество)-Sum({1<[YearMonth] = {'201401'}>} Количество)
Или так:
Код:
Sum({1<[Date] = {">=01.03.2014<=31.03.2014"}>} Количество)-Sum({1<[Date] = {">=01.01.2014<=31.01.2014"}>} Количество)
Но эти выражения заданы с явным указанием дат, и не реагируют на выборки в приложении.
Следовательно, в выражение надо внести изменения, вычисления необходимых параметров в зависимости от выборки, например:
Код:
Sum({<[Date] = {">=$(=MonthStart(AddMonths(Max([Date]),-1)))<=$(=monthend(AddMonths(Max([Date]),-1)))"} >} Количество)
при текущем выборе дат марта 2014, даст период — «>=01.02.2014<=28.02.2014" Рекомендую также ознакомиться с перечнем функций дат и времени. Если требуется отслеживать, к примеру последние периоды от даты обновления данных, можно формировать флаги в календаре. Тогда условие для фильтра будет проще, например LastMonth={'-2'},и т.п. Все сводится к заданию условия фильтров. Отладку условий рекомендую производить в текстовом объекте, задав условие в выражении для текста, например: Код: =MonthStart(AddMonths(Max([Date]),-1))

Q: У меня возникла такая проблема. У меня есть например сводная таблица.Столбцы таблицы это недели (1,2,3 и т.д), а строки — филиалы (западный и центральный филиал, у каждого филиала несколько магазинов). На пересечении строк и столбцов отображается максимальное суммарное количество продаж одного магазина какого-то филиала за одну неделю, Max(Aggr(Sum(Продажи), Неделя, Филиал, Магазин)). Но я хочу, чтобы на пересечении отображалось не само количество продаж, а то, какой магазин осуществил такое количеств продаж.

Я изначально пытался сделать это через If(Max(Aggr(Sum(Продажи), Неделя, Филиал, Магазин)), Магазин), но отображалось только одно единственное значение (только один магазин всего отобразился). Можете подсказать, как сделать так, что бы в каждой ячейке был номер магазина, который отвечает aggr функции.

A:В теме «AGGR() — функция расширенного агрегирования, вопросы применения» есть пару абзацев по использованию firstsortedvalue().
Думаю, это ваш вариант.
Если не найдете решения, опубликуйте тестовые данные, чтобы не выдумывать и обсуждать проблему предметно.

Q: Привет. Не подскажешь как сделать выборку. В qlik sens делаю таблицу с мерой «оплаченные счета», есть поле [Статус] в котором содержится информация о статусе счета: оплачен, отправлен клиенту, отклонен . Как можно сделать выборку только по количеству оплаченных счетов Count([Статус])? Заранее спасибо.

A: Для фильтрации следует использовать расширенный синтаксис анализа множеств, Set Analyse
например

Код:
count(
{<Статус={'Оплачен'}>}
[Статус]
)
Подробнее почитай в руководстве Qlikview, думаю, на русском быстрее будет понять.

Q: Магазин в январе продавал в трех валютах:
USD — 100
EUR — 200
РУБ — 700

Строю сводную таблицу, в которой вычисляемое поле «Сумма в руб» = IF(Валюта=’USD’,Sum([Сумма продаж]*40),IF(Валюта=’EUR’,Sum([Сумма продаж]*50)*,Sum([Сумма продаж])))

Если в сводной таблице есть поле Валюта, то Сумма рассчитывается правильно = 14700
Но, если я убираю валюту, то получается сумма = 1000, т.е. формула не пересчитывает валюты.
Как корректно рассчитать сумму в таблице без отображения валют.

A: Тоже вариант 🙂
Также, можно на уровне скрипта рассчитать отдельным полем рублевую сумму. В этом случае будет проще некуда.
Если надо будет вычислять по истории курсов, то тогда без Aggr() не обойтись.

Q: Создал таблицу с вложенным просмотром от №Баннера до ключевой фразы которая перекреплена к определенным баннерам. Не подскажете как сделать свой набор мер(столбцов) для №Баннера и для фраз?

A:Управление доступом в данной версии не поддерживается.
О том как это реализовано в серверной версии — Qlik Sense, можно почитать здесь.

Q: Подскажите пожалуйста как добавить в Sense новую меру «CTR» которая получается только после расчета по формуле:
CTR = количество кликов / количество показов * 100%

http://f5.s.qip.ru/CkKxLnjm.jpg

A: Ну так и добавить формулой, отдельным столбцом.
Либо через Master items Добавить выражением в Measures

Q: Задумался над задачей, каким образом прописать выражение, чтобы подсчитывать долю определенного показателя данной строки в простой таблице от итогового значения по этому полю.
Это стандартный функционал сводных таблиц excel, но пока не нахожу подобного в qv
Или в даном случае лучше не использовать простую таблицу?..

A: Типа такого?
Код:
sum( $(vReal) [# Сумма с налогами])/sum(total $(vReal) [# Сумма с налогами])

Q: Подскажите, какое выражение нужно прописать в условия, чтобы в таблице подсвечивались первые 5 наибольшие суммы?

Пробывал:
=Rank([id_payment])>=5
=aggr(if(Rank([id_payment])<=5,[office]),[office]) =aggr(if(Rank([id_payment])<=5,[id_payment]),[id_payment]) Но без результата A: Попробуй задействовать свойства выражений.

Q: Исключение значений через расширения выражений (Set Analysis) Qlikview Qlik Sens

A: Для того, чтобы исключить одно или несколько значений через set analysis следует использовать следующий синтаксис:
Код:
Sum ( {} SumEntry )
Т.е. если использовать символ = (равно), то получим только совпадения, а используя -= (минус равно) получаем исключения, а именно — все записи кроме указанных в квадратных скобках {‘501′,’502′,’511’}.
Аналогичный результат будет при использовании:
Код:
Sum ( {} SumEntry )

Найти решение у бизнес-партнера QlikTech (QlikView) в России.

Форум разработчиков QlikView и Qlik Sense. Получите ответы на все вопросы по QlikView и Qlik Sense!

FAQ по формулам, в т.ч. измерениям, в Qlik Sense/Qlik View часть 6

Q: Очередной тупик (видимо и меня можно так назвать 🙂 )

В таблице след.поля: PERIOD,[Country channel],[Company name / Имя компании],[SHOP CHANGES], Universe

Есть выражение в диаграмме (измерения : [Country channel],[PERIOD],[Company name/ Имя компании]):

=IF(concat(distinct{<[Company name / Имя компании]>}[SHOP CHANGES])=’NEW’,IF(sum(Universe)<>‘0’, count(distinct [Company name / Имя компании]),0),0) + IF(concat(distinct{<[Company name / Имя компании]>}[SHOP CHANGES])=’CLOSEDNEW’,IF((sum(Universe)<>‘0’), count(distinct [Company name / Имя компании]),0),0)
Как итог выдает след.график — см.вложение.
Хочу получить график где значения каждого месяца будут идти с нарастающим итогом (т.е. 201501 -2, 201502 -6, 201503- 9.
Предполагаю, что решение связано с Rangesum(Above(… , но как ни стараюсь его применить — результат далек от правильного 🙁
В очередной раз буду признателен за любое содействие.

A:ну не так просто разобраться в работе модели данных и выражении, даже если оно будет написано так:
Код:
=IF( concat(distinct{<[Company name / Имя компании]>}[SHOP CHANGES])=’NEW’,
IF(sum(Universe)<>‘0’,
count(distinct [Company name / Имя компании]),
0),
0)+
IF(concat(distinct{<[Company name / Имя компании]>}[SHOP CHANGES])=’CLOSEDNEW’,
IF((sum(Universe)<>‘0’),
count(distinct [Company name / Имя компании]),
0),
0)
BIbis правильно отметил, что вариант не будет оптимальным.
Думаю, надо смотреть в сторону работу с анализом множеств и расширенного агрегирования функцией aggr().

Q: подскажите где в меню создаются Другие состояния объектов и где пункт позволяющий применить к объекту. Требуется, чтоб только одна таблица реагировала на фильтр относящийся ко всему проекту.

A: Как вариант, эту одну таблицу «не связывать» с другими таблицами — назвать поля таблицы по другому.
А, фильтры связать через триггер «Select in Field».

Q: Делаю АВС-анализ по категориям по примеру http://biadvice.ru/analiz-prodazh/primenenie-abc-analiza-na-praktike-abc-analiz-v-qlikview.html.
Подсчитала в таблице долю каждой категории, затем долю накопительным итогом (через полное накопление как написано). Теперь хочу, чтобы у меня в отдельном столбце проставлялась группа А, В или С в зависимости от накопленной доли.

Выражение «if([Доля (накопит.)]<=0.8, 'А', if([Доля (накопит.)]<=0.95,'В','С'))" не работает, в столбце везде выдается группа "С". Помогите, пожалуйста, с реализацией задумки. A: Проверьте какое значение в поле, что сравнивается с 0.8 и т.д.
Используйте другую схему вычисления накопительных значений, функциями а не установкой флажка.
Например :
Код:
Rangesum([% от итога],
above([% Накопит.]))

Q: Подскажите, где можно узнать подробнее про вычисляемые измерения?

A: Можно посмотреть в справке
«Разрешить условный» , как и «Условный» для выражений предназначено для управления отображением измерения/выражения, в зависимости от значений переменной.
Например как в демопримере на вкладке reports.

Q: В Qlikview загружаются данные вида:

Дата продажи ФИО НомерЧека СуммаЧека
01.01.2015 Петров 123456 1000
01.01.2015 Сидоров 123457 9999
02.01.2015 Иванов 123458 8888
02.01.2015 Петров 123459 1500
02.01.2015 Сидоров 123460 450

По этим данным строится Прямая таблица вида:
ФИО Кол-во чеков Общая сумма
Иванов 1 8888
Петров 2 2500
Сидоров 2 10449

Тут ФИО — Измерение, Кол-во чеков — Count(НомерЧека), Общая сумма — sum(СуммаЧека)

Есть отбор по периоду, допустим сейчас выбран период с 01.01.2015 по 03.01.2015.
Теперь нужно на эту таблицу наложить фильтр, который оставит в таблице только тех людей у которых общая сумма покупок больше допустим 10000 т.р. В нашем примере должен остаться Сидоров.

A: 1. Например, при загрузке данных наложить фильтр: WHERE [Общая сумма] > 10000
2. Или сделать переменную «MoreTop» и выводить данные, которые больше этой переменной:
=if ([Общая сумма] > $(MoreTop), [Общая сумма])

Q: Помогите пожалуйста со следующим вопросом.

1. Есть магазины с товарами. В некоторых магазинах есть излишек некоторых товаров.
То есть, в магазин 127254 можно переместить такие товары со следующих магазинов — вложение 01.png.
2. Если выбрать конкретные магазины, то будет показано перемещение между этими магазинами, таких-то товаров (товаром будет меньше чем в первом примере) — вложение 02.png.
Вопрос в следующем, если выбрано перемещение между конкретными магазинами, как сделать чтобы показать весь перечень товаров, как первом примере. И было бы видно, что с других магазинов переместить другой товар, который нужен выбранным магазинам, нет возможности — вложение 03.png

A:Попробуйте в выражении анализа множеств исключить влияние фильтра по необходимым полям.
Например, sum({<Магазин=>}Количество)
Модель данных помогла бы сориентироваться лучше.

Q: Вопрос наверное мегапростой, но пока не нашел решения.
Как после применения фильтра в одном из полей добиться того, чтобы на всех остальных зависимых полях отфильтрованные значения исчезали, а список значений поля автоматически изменялся в размерах (как это происходит для таблиц)?
Нашел как просто скрывать отфильтрованные элементы, но это смотрится не очень профессионально, да и полоса прокрутки не отображает реальный объем значений

A: А почему бы для подобных целей не использовать как раз простую таблицу с одним столбцом? Тот же список, который обладает нужными вам свойствами.

Q: Возник такой вопрос: как применить функцию AGGR для всех записей измерения?
Есть поле АТМ и EventDiff. Но не для всех АТМ есть EventDiff.
Вот мне нужно выбрать те, для которых его нет (тоже самое, что сумма равна 0, т.к. нулевых значений нет)

Следующий код результатов не выдает, т.к. не находит таких результатов. Можно ли как-нибудь aggr применить для всех записей? Или как-то по-другому решить задачу.

Код:
if(aggr((sum({=$(vFromDate)<$(vToDate)'}>} EventDiff)),ATM)=0,ATM)
Так тоже не получается…
Код:
=if(IsNull(EventDiff),ATM)

A: Не совсем понятно, в каком виде вы хотите увидеть результат и с каких данных.
Для простого примера:
Код:
LOAD * INLINE [
ATM, diff
00002, 0:01:20
00003, 1:00:00
00004,
00005, 0
00006, 0:02:10
00007, 0:03:11
00008
00009, 0
];
Простое выражение в списке
Код:
=if(diff=0 or diff=»,ATM)
даст «нулевые» АТМ.

Q: Есть задачка определить кол-во изделий на гарантии по состоянию на сегодня («сегодня» каждый день, естественно, изменяется).
Для этого есть таблица с номерами изделий, датой ввода в эксплуатацию и датой снятия с гарантии.

A: Чтобы можно было решить вашу задачу участниками форума, подготовьте пример исходных данных в табличном формате (для загрузки и тестирования) и контрольные цифры, если есть.

Q: Ни где не могу найти, но говорят, что есть такая штука, которая считает количество операций, к примеру:
X=Какая-тоШтука(vA-vB-vB-vB), тут возможно продолжение в виде условия.
X=3 (так как три раза вычли)

Могу очень, сильно ошибаться… или не точно изъясняться…

A:
len(
KeepChar( ваша строка, ‘+-/*&’)
)

Q: Как в получившемся значении убрать округление до целых.
К примеру в выражении получилось, 5,2 а в таблице показывает как 5?
Пробую использовать num(), но как-то не помогает, чувствую что-то делаю не так…

Если возможно, можно пример.

A: Num используем когда нам надо гарантировать числовое представление.
А ваша задача — округление. Обычно это функция round.
В Qlikview и Sense это функция из трех параметров
Round(x[, step[, offset]])

round(3,45,’0.01′) на выходе дает требуемое

Найти решение у бизнес-партнера QlikTech (QlikView) в России.

Форум разработчиков QlikView и Qlik Sense. Получите ответы на все вопросы по QlikView и Qlik Sense!

FAQ по формулам, в т.ч. измерениям, в Qlik Sense/Qlik View часть 5

Q: Хочу попросить совета — в каком направлении двигаться )

Дана таблица, в которой (для примера) описываются некие события, есть поля «Код события» и «Время». Где то (неважно), я задал текущую выборку, определил для нее минимальное и максимальное время.
Теперь стоит задача отобразить на других диаграммах: события за 5 (для примера) минут до минимального времени и за 5 минут после максимального. Реальность требует использования сеточных диаграмм, где «Код события» и «Время» — измерения. Собственно вопрос: как ?
Я прочитал»Анализ множеств», но там дело идет с выражениями. В моем случае, получается, необходимо ограничивать измерения…

A:Измерения отображаются по выражениям. если у вас фильтр настроен на июль 2015, то и будет только 07-2015. Постройте выражение с учетом своих допусков.
Для начала поэкспериментируйте с днями, выделите день, а в условии поставьте +/-1 к полю Дата.

Q:Дано:

Продукт Выручка
продукт1 500
продукт2 300
продукт3 400

Вопрос: как получить (путем вычисления выражения в текст. объекте) количество продуктов, у которых суммарная накопленная доля по выручке, например, будет меньше 70 % … ? т.е. в данном случае ответ будет 2 шт.

A:В моем примере, чтобы вывести значения, например, меньше 90% я в текстовом поле прописываю:

=sum(aggr(if(RANGESUM(ABOVE(SUM(SALE)/SUM(TOTAL SALE),1,RowNo()),SUM(SALE)/SUM(TOTAL SALE))<0.9,1,0),ITEM)) При этом у вас не настроена сортировка в таблице по выражению "Выручка". Вам ведь необходимо находить от мин. к макс. Q: есть 3 измерения Страна, Регион, Город они составляют иерархию
я из них делаю иерархическую группу

в диаграмме нужно для этой группы подсчитать одно выражение, суть его не важна, но для разных уровней это выражение считается по разному
есть такая функция могу ошибаться в синтаксисе, что типа getselectcurrent(имя группы)
она как вроде должна отдавать имя текущего уровня

но во первых не могу понять как мне вывести значение этой функции, куда нибудь, чтобы увидеть что же она возвращает в 3 случаях
а во вторых я пишу ее в вложенном if , и не работает

A: GetCurrentField(ВАША_ГРУППА)

Просто не пугайтесь, что редактор подчеркнет как ошибку, он много чего так подчеркивает >:(, посчитается всё правильно. Единственное, что я не научился обрабатывать названия групп с пробелом, но думаю это не критично.

Q: Если,при выборе месяца,конец недели не входит в этот месяц — необходимо,чтобы эта неделя совсем не попадала в данные диаграммы.
Ну или для начала недели аналогично.Суть все равно одна и та же, т.е. если начало нед не входит в выбранный месяц,то нужно,чтобы эта неделя вообще не попадала в данные диаграммы.
Каким образом можно это осуществить?Я так понимаю все дело в прописывании условия?
Ниже приведен используемого календаря,возможно в нем нужно дополнить что-то,для правильности отображаемых данных.
А также на рис.Безымянный11 приведен пример,конкретно какие недели должны отображаться на графике (полные недели января)

A: Добрый день
=if(WeekStart(Дата) >= MonthStart(Дата) and WeekEnd(Дата) <= MonthEnd(Дата) , WeekName(Дата) )

Q: Не могу разобраться, как правильно прописать оператор YTD в QlikView.
Суть в том, что у меня выборка должна включать не просто выбранную дату, но и период, предшествующий ей.
Покажу на примере:
Нужно загрузить данные за 2014 и 2015 год, и, допустим, если я выбираю дату 30.06.15, то нужно, чтобы программа отображала не только данные за это число, а включала период с 01.01.2014 по 30.06.2015.
Нашла много материалов по данному оператору, понимаю, что прописывать его нужно через Set Analysis.
Проблема в том, что не нашла конкретных примеров — только формула + в разных источниках по-разному прописан синтаксис, хоть и не кардинально, но всё же отличается.
Если у кого-то есть источники, где есть реальные примеры с данным оператором, буду искренне благодарна.
Впрочем, буду признательна любой помощи.

A: Да, вариантов несколько может быть.
Самое простое выражение для таблицы:
Код:
sum({<дата = {'>=$(=yearstart(min(дата),-1))<=$(=max(дата))'}>} Сумма)
дата — поле календаря и таблицы фактов.
Сумма — поле связанной по дате таблицы.

Q: Не знаю как написать правильно условие для расчета суммы продаж за предыдущий месяц.
Есть два варианта, если не выбрано конкретное число,например май 2015 и если выбрано, например 5 мая 2015. Т.е если число не выбрано, то нужно посчитать полностью за предыдущий месяц,а если число выбрано, то нужно посчитать за предыдущий месяц с учетом дня. Т.е в первом случае надо посчитать за апрель 2015, а во втором за 5 апреля 2015. Как можно указать в условии формирования сдвига даты что выбран день или не выбран день,
можно ли написать следующим образом?
If(День >0, AddMonths(vMaxPeriod,-1),if( День=0,Monthend(AddMonths(vMaxPeriod,-1))))

A: вопрос пересекается с темой http://qlikview-forum.ru/qvf/index.php/topic,811.0.html
Предлагаю разбить задачу на этапы.
Для начала определимся с выражениями а затем с условием.
За эти дни может быть уже пришли к какому-то решению?

Q: Начинаю присматриваться к QlikView и мне понадобился подсчёт по выборке.
Как правильно составить, если есть столбец [Статус] в нём значения «true» и «false». Мне необходимо подсчитать количество значений «true»

A: Выражение простое, вот пример для текстового объекта:
Код:
=Count(
{<[Статус]={'true'}>}
[Статус])
Теория хорошо изложена в документации и справке. Искать по фразе «анализ множеств».
Очень хорошая документация по Qlik Sense тоже может помочь

Q: Просмотр профиля
Перенос выражения в загрузочный скрипт (qlikview)
« : Июль 06, 2015, 05:47:23 pm »
Здравствуйте, есть выражение такого типа:
Код:
if( count(DISTINCT D_ID) > 0.6* max ( total Aggr(count(DISTINCT D_ID), Владелец) )…
Цель: пытаюсь перенести данное вычисление в загрузочный скрипт.
Код:
tab_02:
load D_ID,
if( peek(‘D_ID’)=D_ID,0,1) as D_count
DC_NUMBER as CardID,
Resident tab_01 order by D_ID asc;

tab_03:
load
CardID,
sum(D_count) as Count_DistD_ID
Resident tab_02
Group by CardID;
В результате — да, получается табличка с подсчетом D_ID для каждого CardID соответственно… ну и теперь возможно найти макс. среди всех, но… это будет константа.
Вопрос-проблема: возможно ли вообще получить такие «макс. тотал», чтобы оно(и) реагировали на выборку?!
A:Конечно, можно считать «макс тотал».
Небольшой фрагмент данных для опытов по задаче был бы весьма кстати.

Q:Здравствуйте, не подскажете как подсчитать сумму продаж за предыдущую и за текущий месяц?

A:Sum({<месяц={$(=Max(месяц))}>} sales) -текущий
Sum({<месяц={$(=Max(месяц)-1)}>} sales) -предыдущий

Q:Имеется график в котором считается количество продаж в формате «Месяц-год»->Количество продаж

Необходимо добавить на данный график линейный график изменения в процентном соотношении объема продаж «Месяц-год»-> Изменилось на N%.
Строю комбо график и не могу понять как сделать выборку значений за предыдущий месяц
Формула должна быть (Объем(предыдущий месяц)/Объем(Следующий месяц))*100
Не могу понять как это сделать(

A:Если измерение = Месяц
То, выражение above(sum()) вернет значение по предыдущему отображаемому месяцу.
Попробуй above(sum())/sum()

Q: Коллеги, не хватает знаний, как реализовать подобное?
Столбец А,
Иван
Петр
Иван
Петр
Илья
Иван
Петр
Иван
Петр

Как посчитать и вывести в отчет количество имен Иван, Петр, Илья в данном столбце.

A: Столбец А как измерение, а в выражении count([Столбец А])

Q: Подскажите, пожалуйста. Есть такая ситуация. У нас есть прямая таблица, в которой есть измерения, одно из измерений с условием. Есть выражения, по которым считаются значения измерений Как можно вывести поле, значение выражения которого равно null. Если во вкладке измерения этой таблицы убрать галочку скрыть null Значения, то появится не только это поле,но и поля,которые не нужно отображать. А поставить галочку в поле показать все значения в измерении с условием нельзя. Может кто-то знает решения данной проблемы?

A: if( isnull(ВЫРАЖЕНИЕ) , ‘Тут ничего нет’, ВЫРАЖЕНИЕ )
Или избавиться от «пустышек » в значениях измерений в скриптах, при формировании модели данных.
Просто заменив null на любое текстовое обозначение.

Q: У меня есть табличка вида:
№ заказа Товар Возрастная группа
22 N Детская
22 U Взрослая
24 К Взрослая
25 К Взрослая
25 О Взрослая

Вопрос — как посчитать количество заказов, в которые входят товары ТОЛЬКО Взрослой возрастной группы? Т.е. в данном примере таких заказов будет 2.

A: Нам надо подсчитать, следовательно count().

Будем считать по значению поля «№заказа», а чтобы исключить двойной подсчет одного и того же заказа, применим — Distinct, следовательно count(Distinct [№ Заказа])

Нам следует ограничить подсчет множеством взрослой возрастной группы , т.е. [Возрастная группа]=»Взрослая», следовательно, применяя анализ множеств запишем
Код:
count( Distinct { <[Возрастная группа]={"Взрослая"}> } [№ Заказа] )


Найти решение у бизнес-партнера QlikTech (QlikView) в России.

Форум разработчиков QlikView и Qlik Sense. Получите ответы на все вопросы по QlikView и Qlik Sense!

FAQ по формулам, в т.ч. измерениям, в Qlik Sense/Qlik View часть 4

Q: Хочу сделать линейную диаграмму, где в зависимости от выбранного пользователем года строится 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 — сумма продаж

A: В целом код верный и должно считаться все верно.
Возможно, нужно попробовать вот так:
Код: [Выделить]
YTD 2014: Sum({$<[Date__c]={">=01.01.2014<31.12.2014"}>} FactCost__c)

2. Если ничего не выводит, то можно попробовать двигаться «поступательно». Сначала посчитать (сделать таблицу) для одного года. Если удалось это сделать, то добавить еще один год и т.д.

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

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

Q: Подскажите пожалуйста можно ли как то округлить время в диаграмме.
мне нужно округлить время:

A: Конечно, можно.
Если время в поле дата (29.02.2016 08:14:31), то можно сделать вот такой Dimension:

Код:
=If (WildMatch (Mid (DATE_TIME, 15, 1), 0, 1, 2), Mid (DATE_TIME, 12, 2) & ‘:00’, Mid (DATE_TIME, 12, 2) & ‘:30’)

P.s. Правда, мне кажется, такие штуки лучше рассчитывать на этапе загрузки. И данные с агрегируются и дашборд будет меньше нагружаться.

Q: Прошу Вас помочь с формулой, позволяющей сделать нарастающий итог по каждой неделе в каждой «группе материалов».

Понимаю, что нужно использовать set expression, но почему то она не работает
SUM({$ } Income-Outcome)

A: Малость с телефона, и немного не выспавшийся…
Но похоже в вашей формуле не хватает знака Равно в этой части для сравнения
{‘<=$(=Week)'}

Q:Давно у меня уже висит задача, с которой разобраться не могу. Сейчас появляются на работе задачи, поэтому она стала критичной.
К сути — у меня Set Analysis и конструкция if не распознают переменные с датой.

1) Касаемо Set Analysis:

Есть стандартный синтаксис, где задаются переменные с датой:
Код:
SET vYearMin = 2004;
SET vYearMax = 2014;
SET vYearCurr = 2015;
Потом данные переменные должны работать в формуле:
Код:
=SUM({$ <Год = {'>=$(vYearMin)<=$(vYearMax)'}>} Продажи)
В своём случае я задаю переменные:
Код:
SET vDate1 = «‘17.08.2015 00:00:00’,’DD.MM.YYYY HH24:MI:SS'»;
SET vDate2 = «‘19.08.2015 23:59:59’,’DD.MM.YYYY HH24:MI:SS'»;
Подставляю их в формулу:
Код:
=SUM({$ =$(vDate1)<=$(vDate2)'}>} Приход)

Формула выдаёт 0. К слову, данная конструкция не видит переменные, т. е. они становятся серыми, когда я убираю фигурные скобки и кавычки одинарные.
Забыла описать саму задачу.
Мне необходимо задать период с понедельника по среду, чтобы поле суммировало приходы за 3 дня. Причём, чтобы один столбец всегда показывал бы предыдущую неделю, а второй текущую — сравнительная аналитика по приходам нужна.
Возможно ли задать данные периоды динамически, чтобы постоянно не переписывать даты? И как быть с переменными, если он их не видит, есть ли другие способы решения данной задачи?
Наверное, стоит уточнить, что поле doc_date содержит массив дат (скрин 2 во вложении). Возможно ли несооттвествие из-за того, что данное поле содержит дату в таком виде? К слову, именно к этому полю у меня прикреплён календарь (скрин 3 во вложении), дату идентифицирует корректно.

2) Касаемо if:

Пишу формулу, но она очень странно работает:
Код:
if(DOC_DATE = $(vM1), sum(KOL))

Допустим, нужно просуммировать приход за 17 сентября. Пишу, если doc_date = 17 сентября (переменная), то суммируй приход.
Работает в моём случае эта формула так — она суммирует любые другие даты, кроме указанной. Когда же выбираю роковое 17 сентября, то она выдаёт формат даты (скрин 4 во вложении).
С чем это может быть связано? Или есть какие-то нюансы в данной конструкции, которые я не учла?

Буду благодарна за любую помощь, голову уже сломала, не могу понять, где я допустила ошибки.

A: Попробуйте даты задать в таком формате:

Код:
LET vDate1Tmp = MakeDate(2015,08,17);
LET vDate2Tmp = MakeDate(2015,08,19);

LET vDate1 = floor($(vDate1Tmp));
LET vDate2 = floor($(vDate2Tmp));

В скрипте DOC_DATE прописать как
Код: [Выделить]
floor(DOC_DATE) as DOC_DATE

Задаем даты. Преобразуем их в числа. При изменении дат, они автоматически будут преобразованы в числа, соответственно. Даты задаем в переменных с Tmp, в формулах используем переменные vDate1 и vDate2.

Соответственно подставляя в формулы

Код:
SUM({$ =$(vDate1)<=$(vDate2)'}>} Приход)

Формат времени указывать не обязательно, потому что и так возьмутся целые дни.
Пишу на коленке, поэтому могут быть «Очепятки» 🙂

Насчет if.
Судя по тому что я вижу, то могу предположить, что формула отрабатывает не корректно, потому что разные форматы дат. Поэтому лучше использовать все тот же floor (Округление в меньшую сторону). С числами проще работать, чем с датами.

Код:
if(floor(DOC_DATE) = floor($(vM1)), sum(KOL))

Q: Подскажите,пожалуйста. Есть ли такая возможность в qliksense отображать опорную линию(линию тренда) но не на всем графике, а продолжать ее при отсутствии данных за какой-то период.
Т.е если у нас в 2015 году есть данные только до октября, то линия тренда отображалась от октября до декабря. Я склоняюсь к тому,что такой возможности нет. Но решила уточнить на всякий случай.
Может возможно такую задачу решить через комбо диаграмму?Т.е основной график отобразить как линейчатую диаграмму, а недостающий период через линию?

A: Как-то так:
If( год= max(TOTAL год),месяц)

Q: Добрый день,есть такая маленькая проблемка. Есть месяц год в формате dual, Как можно посчитать предыдущий месяц. Т.е нужно чтобы при выборе месяц год,например сентябрь 2015, считались данные для августа 2015

A: Посмотрите похожие темы:
http://qlikview-forum.ru/qvf/index.php/topic,797.msg1711.html#msg1711
http://qlikview-forum.ru/qvf/index.php/topic,470.msg825.html#msg825
http://qlikview-forum.ru/qvf/index.php/topic,798.msg1716.html#msg1716
http://qlikview-forum.ru/qvf/index.php/topic,804.msg1746.html#msg1746

Можете выложить пример данных (кодом или таблицу), чтобы на вашем примере показать решение.

Q: Подскажите пожалуйста,каким образом,в Клик Сенсе, в выражениях, можно исключить определенные значение,например «медиак»?
Составил выражение: Count({<Компания='медиак'>}[Продажа Сумма]) .Не сработало!
Хотелось бы,чтобы исчезло деление (рисунок ниже)

A:Сообщений: 961
Страна: ru
Почитайте про анализ множеств.
По выражению, попробуйте так:
Код:
Count({<Компания-={'медиак'}>}[Продажа Сумма])

Q:Столкнулась с тем, что нужно задать немного противоречивое ограничение.
К сути. Есть 4 типа документов, по которым нужно выводить количество. С этой задачей прекрасно справляется данная формула:
Код:
=SUM({ $ } KOL)

Но помимо этого нужно, чтобы формула реагировала на выборку между этими 4-мя типами.

Получается, в итоге она по умолчанию всегда должна суммировать только эти 4 типа (на самом деле их больше 20), но если я выберу один из этих типов, то должна отображать сумму только по нему.
Читала блоги, мануал, но никак не пойму, как это реализовать.

A:Если правильно понимаю задачу, то думаю, можно решить где-то так:
Код:
Переменная: v_Value = TYPE
if (TYPE = ‘14286858’ or TYPE = ‘14286852’ or TYPE = ‘28835859’ or TYPE = ‘14286850’,
SUM({ $ } KOL),
SUM({ $ } KOL)
)

Q:Не подскажите как лишний символ $ и преобразовать строку в число.

Пример:
$980.00

A: есть и такой вариант:

Код:
num(Money#(‘$987.23′,’$#’,’.’ ))

Q:Есть таблица:
QUANT DATE
10 01.10.2015
5 02.10.2015
20 03.10.2015
1 04.10.2015
4 05.10.2015
Каким образом можно узнать QUANT на максимальную дату? В данном случае, это будет 4.
Например, пользователь может выбрать любой период — пусть будет август. И нужно узнать QUANT на 31 августа.
Или, пользователь выберет любые три дня — пусть будет 02.10.2015, 03.10.2015, 04.10.2015. И нужно узнать QUANT на 04.10.2015.

A:=avg({$} QUANT)

Q: Подскажите,пожалуйста, как можно посчитать сумму для последнего выбранного месяца?
Нужно сделать так,чтобы если выбрано несколько месяцев, то нужно чтобы сумма не за все месяцы считалась,а за последний выбранный.

A:sum({<месяц={$(=Max(месяц))}>} shototam )

Если нужно только при выборке месяцев выбирать последний, а по умолчанию считать по всем, то

if( GetSelectedCount(месяц)>0 ,sum({<месяц={$(=Max(месяц))}>} shototam ),sum(shototam ))

Q: Скажите пожалуйста,есть ли в QV функция на подобии cluster как в Экселе. К примеру у нас есть владельцы карт скидочных 10 процентов скидка.Они делают покупки ( кто-то больше , кто-то меньше) Необходимо разбить их на сегменты, по как-му либо признаку, то есть найти закономерности между людьми.

A: Если я правильно понял о чем идет речь (кластерный анализ) то в Qlik-ах пока такого функционала нет, к счастью 🙂
Есть возможность выгрузить данные в R и загрузить обработанные обратно.
Но предварительно я бы сделал модель в кликвью и «покрутил» бы там подобный массив данных.

Q: Может кто-то подскажет, как сделать нечеткое сравнение двух текстовых полей в таблице.
Например, у меня есть 2 базы данных с названиями брендов. Мне нужно получить следующую таблицу:

Название бренда -База 1 Название бренда — База 2 Результат сравнения
Данон Донон Сходятся
Буги Вуги БугиВуги Сходятся

В QlikView есть нечеткий поиск, идея близка, только нужно выводить результат сравнения.
Нашла только одну тему на форуме, но без ответа https://community.qlik.com/message/8913#8913

A:Таблицу соответствий придется делать руками.
А потом — маппингом.
А я бы еще и первоисточники просмотрел бы на предмет унификации, чтобы не ломать потом голову на сопровождение.


Найти решение у бизнес-партнера QlikTech (QlikView) в России.

Форум разработчиков QlikView и Qlik Sense. Получите ответы на все вопросы по QlikView и Qlik Sense!

FAQ по формулам, в т.ч. измерениям, в Qlik Sense/Qlik View часть 3

Q: Есть задача посчитать доли по статусам продаж в каждом месяце.
К примеру: имеем следующие данные

Date Статус Sales
29.08.2016 Оплачен 100
30.08.2016 Возврат 200
31.08.2016 Оплачен 300
01.09.2016 Оплачен 400
02.09.2016 Возврат 500

В итоге нужно получить:

Август Сентябрь
Sum([Статус]) Доля, % Sum([Статус]) Доля, %
Итого 600 100% 900 100%
Оплачен 400 67% 400 44%
Возврат 200 33% 500 56%

В QlikSense сделала сводную таблицу, проблемы возникают с подсчетом показателя — Доля, %.
Sum([Sales])/Sum(total [Sales]) не катит, так как Sum(total [Sales]) считает сумму по всей базе, а не по определенному месяцу.
Еще пробовала так: Sum([Sales])/Aggr(Sum([Sales]),[Дата-Дата .autoCalendar.Month]), тоже не получается.
Помогите, пожалуйста.

A: Читаем хелп по sum()
А можно сразу здесь почитать, с примером по вашему случаю.
Вкратце, надо будет указать поле для определения уровня агрегирования Total.
Цитировать
Если слово TOTAL стоит перед аргументами функции, вычисление выполняется по всем возможным значениям, указанным в текущих выборках, а не только в тех, которые относятся к значению текущего измерения, т. е. измерения диаграммы игнорируются.

После префикса TOTAL может быть указан список, включающий одно или несколько имен полей в угловых скобках . Эти имена полей должны быть поднабором переменных измерений диаграммы.

Q: Приветствую есть ли аналог функции СУММЕСЛИ в QV?
Есть список номенклатуры на остаках всего порядка 80 000 артикулов.
Как подсчитать количество разных артикулов по которым была реализация?

A: Надо подсчитать количество уникальных артикулов, по которым была реализация.
count( distinct [признак реализации])

Q: Есть ли возможность организовать выражение, которое находило бы max и min не из диапазона значений, а из набора основных элементов или набора переменных, которые содержат в себе какие-то выражения?

На пальцах:
У меня есть 3 созданных мною основных выражения (двойные кавычки обозначают название):

«SLA»

num((1-if($(tnTicket1)=0,’-‘,($(tnTicket4))/($(tnTicket1)+$(tnTicket2_1)+$(tnTicket2_2)))
),
‘##,00%’
)

«SLAAIR»

num((1-if($(tnTicket1SLA)=0,’-‘,($(tnTicket4SLA))/($(tnTicket1SLA)+$(tnTicket2_1SLA)+$(tnTicket2_2SLA)))
),
‘##,00%’
)

«SLABLPS»

num((1-if($(tnTicket1BLPS)=0,’-‘,($(tnTicket4BLPS))/($(tnTicket1BLPS)+$(tnTicket2_1BLPS)+$(tnTicket2_2BLPS)))
),
‘##,00%’
)

Хотел бы на лист добавить элемент ключевого показателя эффективности, который принимал бы минимальное значение, принимаемое одним из этих основных элементов.

A: Попробуйте использовать функцию rangemin().
Например, при rangemin(1,2,3), данная функция вернёт минимальное значение, равное 1.
Также, можно воспользоваться вот таким выражением:
Min(ValueList(1,2,3))

Q: К сожалению, не удалось найти ответ на просторах форума. Эксперименты тоже не увенчались успехом :'( Есть подозрение, что это делается крайне легко, но как-то не получается((

Подскажите, пожалуйста: возможно ли сделать заголовок диаграммы с изменяющимся параметром? Например, «Количество продаж за *дата*». При этом *дата* — это некая формула, которая берет, например, текущий день или последний день из данных.

A: Конечно можно. Для этого следует прописать выражение возвращающее/формирующее текстовую строку, например:
Код:
=’Данные от ‘&$(vDataZaprosa)&’.’
Т.е. если в заголовке будет выражение начинающееся со знака = , то оно будет вычисляться, иначе просто отображаться.

Q: Всем привет, нужна помощь по получению долей. Есть таблица, в ней у меня указан контрагент и суммы.
Хочу получить, какую долю занимает каждый из них.
Пример:
Контр1 2345 рублей
Контр2 1111 рублей
Контр3 4343 рублей
Контр4 32131 рублей

Нужно добавить колонку, которая будет считать следующее:
Для контр1 — 2345 / Сумма(2345+1111+4343+32131) = сколько то процентов
Для контр2 — 1111 / Сумма(2345+1111+4343+32131) = сколько то процентов и т.д.

A: потребуется либо использовать измерение — период, либо включить условие в выражение фильтра.
Смотрите по справке — Анализ множеств.

Q: Есть формула:
Код:
=Sum( Aggr(
Count( DISTINCT {=$(=vStartDate)<=$(vEndDate)"}>} Product_id)/ Count( DISTINCT TOTAL {=$(=vStartDate)<=$(vEndDate)"}>} Product_id),
Order_id, category_name , Канал_привлечения(Общий) ) )
Как это упростить, чтобы не было 3-х уровней агрегации?

A: Да. Используйте подготовку данных на этапе загрузки

Q: Подскажите как посчитать для измерения коммутатор число контекстов в которых разные платы.
В приведенном примере таковых 2.

Коммутатор Контекст плата
MRC_09 2106136397 :8
MRC_09 2106136378 :9
MRC_09 2106136358 :10
MRC_09 2106136358 :11
MRC_09 2106136354 :9
MRC_09 2106136335 :10
MRC_09 2106136335 :10
MRC_09 2106136313 :10
MRC_09 2106136313 :11

A: Count(DISTINCT {<Контекст=,Контекст={"=Aggr(Count(Distinct плата), Контекст)>=2″}>} Контекст)

Q: Считаю число Call ID на определенном провайдере с определенного направления
count({<Провайдер={"MSK-1"}>} if(Направление=’Вход (усп)’, [Call ID]))
А как посчитать числоCall ID на всех провайдерах кроме 3-х определенных и только для 2-х направлений?

A: либо тот же Set Analysis, только:
{‘*’}-{‘Значение 1’}-{‘Значение 2’}-{‘Значение 3’}

Возможно с галочками где-то не так. Исключение из всего множества значений.

Q: строю график по выражению
=if(Count ([Call ID])>10,count(if(Направление=’Исх (усп)’, [Call ID]))*100/(count(if(Направление=’Исх (не усп)’, [Call ID]))+count(if(Направление=’Исх (усп)’, [Call ID]))))
измерение это счет.
Как построить график, в которым измерением бы было число счетов, а выражение тоже?

A: почитайте про использование функции aggr().

Q: Описание и логика
В заказах присутствую товары из разных категорий. Для определения кол-ва заказов (Orders) считаю веса:

Например, рассчитываем вес (кол-во заказов) для раздела «Home» : 1\2 + 1\3 + 1 = 1.83.
В таблице выражение вот такое:
Код:
Sum(Aggr(
Count( DISTINCT Product_id) / Count( DISTINCT TOTAL Product_id),
Order_id, category_name))

Тут все хорошо.

Проблема
Нужно определить кол-во новых клиентов за выбранный интервал.
Логика расчета должна быть аналогичная, т.е. через веса. Новый клиент — дата создания первого заказ в интервал если попадает.

Т.е. если интервал выбран 01.01.2015 — 02.01.2015 , то, как я понимаю, клиент с номером 1 уже не должен учитываться как-то в расчете. Как рассчитать этих новых клиентов и заполнить второй стоблик?
Скриншот прилагается. Буду очень благодарен за помощь!

Исходные данные такие:

Order:
User_id Order_id Date_insert
1 1 01.01.2015 12:33:12
1 4 01.01.2014 12:33:12
2 2 01.01.2015 11:23:11
3 3 02.01.2015 13:12:16

Basket:
Order_id Product_id
1 1
1 2
2 1
2 2
2 3
3 1
4 1

Category:
Product_id category_name
1 Home
2 Garden
3 Jewelry

A: Вроде бы сам разобрался. А вдруг кому пригодится, вот так можно:
Код:
Sum(Aggr(
Count( DISTINCT {}Date)>=vStartDate»}>} Product_id) /
Count( DISTINCT total {}Date)>=vStartDate»}>} Product_id) ,
Order_id, category_name))

Q: Строю диаграмму по выражению.
count(if(Направление=’Исх (усп)’, [Call ID]))*100/(count(if(Направление=’Исх (не усп)’, [Call ID]))+count(if(Направление=’Исх (усп)’, [Call ID]))).
Надо, чтобы при построении графика учитывались только данные, которые удовлетворяют условию Count ([Call ID])>1000. Как это сделать?

A: Можно использовать Set Analysis и в каждый Count добавить {<ИзмерениеАгрегации={"=Count ([Call ID])>1000″}>}. Будет что-то типа следующего выражения
Код:
count( {<Направление={"=Count ([Call ID])>1000″}>} if(Направление=’Исх (усп)’, [Call ID]))*100
/
(count( {<Направление={"=Count ([Call ID])>1000″}>} if(Направление=’Исх (не усп)’, [Call ID]))
+
count( {<Направление={"=Count ([Call ID])>1000″}>} if(Направление=’Исх (усп)’, [Call ID]))).
Тут мы оставляем только те Направления, по которым Count ([Call ID])>1000

Я бы ещё и конструкцию IF убрал, а вместо нее добавил вы условия в СА
Например:
Код:
count( {<Направление={'Исх (усп)'}*{"=Count ([Call ID])>1000″}>}[Call ID])*100
/
(count( {<Направление={'Исх (не усп)'}*{"=Count ([Call ID])>1000″}>} [Call ID])
+
count( {<Направление={'Исх (усп)'}*{"=Count ([Call ID])>1000″}>} [Call ID]))

Q: Подскажите, пожалуйста, ответ на следующий вопрос. Как в кликсенс построить диаграмму, в которой удельные веса будут считаться по временным периодам. В частности есть таблица с данными грузоперевозок, в ней есть маршруты машинами разной грузоподъёмности за разные периоды времени. Стоит задача вывести удельный вес в грузообороте машинами разной грузоподъёмности помесячно. У меня получается вывести только удельный вес по итогу за всё время следующим образом sum([Вес])/sum(total [Вес]), и вношу в диаграмму грузоподъёмность и месяц. Как преобразовать эту формулу на помесячный расчёт

A: Должно работать,
Код:
Sum([Sum-Вес])/Sum(total <Месяц> [Sum-Вес])
на вашем примере проверено — все ОК.

Q: Имеются такие данные:
Client, Product, Date, Sales
1, Apple, 01-01-2015, 750
1, Mango, 01-02-2015, 450
1, Limon, 01-02-2015, 350
2, Apple, 01-01-2015, 1750
2, Mango, 01-02-2015, 550
3, Limon, 01-01-2015, 250

(Выбираю Limon) Выражением
Код: [Выделить]
sum( {}) >} Sales)
я оставляю тех, кто покупал Limon. Это 1-ый и 3-ий клиент.

Вопрос: Как мне оставить тех, кто покупал только Limon и ничего кроме. Или, например, только тех, кто покупал Limon и Mango вместе ( среди покупок именно два товара вместе)?

P.S.: может есть другие варианты сделать так, чтобы выборка в списке «Product» работала не как»Или», а как «И» ? Возможно как-то переключать эти режимы?

A: Попробуйте через операции с модификаторами множества.
Код:
sum({ * }) >} Sales)

либо следующее выражение
Код:
sum({}) >} Sales)

Q: Нередко возникает вопрос о применении функции Qlikview AGGR(). В сети можно найти интересные примеры, но не понимая принципа работы AGGR() разобраться в них непросто.
Описание функции на сайте help.qlik.com

На простом примере начнем знакомство с этой функцией.

Возьмем абстрактный пример — факт чего-либо (# Сумма) по двум измерениям (Группа, Подгруппа)
(Извините, но вы не имеете доступа к галерее)
Загружаем данные в приложение Qlikview и создаем простую таблицу на три колонки:
(Извините, но вы не имеете доступа к галерее)
Мы получили данные о результатах работы групп по подгруппам с итогом.
Что еще мы можем получить из этого простого набора данных?

Отсортировав данные по сумме получаем минимальное и максимальное значение (13 237 и 96 040).
Включив опцию «Доля» для выражения суммы получим процент суммы для каждой строки в общей масссе. Того же результата можно добиться используя выражение —
Код:
Sum ([# Сделки])/Sum (TOTAL [# Сделки])
(Извините, но вы не имеете доступа к галерее)
Следующий вопрос — чьи результаты меньше 50% и более 80% от максимального показателя? Т.е. кто насколько отстает от лидера?
Т.е. требуется определить долю суммы каждого сочетания Группа-Подгруппа относительно максимального результата (отношение к 96 040).
Решается этот вопрос довольно просто с применением функции Aggr().
Код:
Sum([# Сумма]) / Max(TOTAL Aggr(Sum([# Сумма]), Группа, Подгруппа))
Почему не стоит использовать в знаменателе формулу max (TOTAL [# Сумма]) , показано на рисунке.
(Извините, но вы не имеете доступа к галерее)
Теперь следует разобраться, как работает эта функция. Согласно описанию, функция aggr() возвращает виртуальную таблицу из значений выражения рассчитанного по измерениям, указанным в качестве параметров. Аналогично выражению GROUP BY оператора SELECT SQL.
Т.е. запрос:
Код:
LOAD sum([# Сумма]) Resident SampleTable1 Group By Группа, Подгруппа
Дает тот же результат что и выражение:
Код:
Aggr(Sum([# Сумма]), Группа, Подгруппа)
Возвращаясь к ответу на поставленный вопрос, как определить группу лидеров и отстающих. Самое простое решение — использование визуальных подсказок для верхней и нижней границы, как показано на рисунке.
(Извините, но вы не имеете доступа к галерее)
Для отладки при составлении выражений можно использовать списки для просмотра результатов расчетов функции AGGR(). Здесь нет ничего сложного — используем выражение вместо поля при создании списка:
(Извините, но вы не имеете доступа к галерее)

Это самый простой случай использования функции AGGR(). На практике ее можно использовать и при создании измерений и для более сложных вычислений.
Если есть интерес, готов рассмотреть другие ситуации.

A: Использование AVG() без предварительного вычисления итогов внутри группы функцией AGGR(), может привести к ошибочным результатам.

И еще один пример с расчетом среднего:
(Извините, но вы не имеете доступа к галерее)
Как видим, среднее подсчитано в трех вариантах, и каждый может быть справедлив, в зависимости от ситуации и задачи.

Формулы для выражений:
Код:
Sum ([# Сумма])
Avg ([# Сумма])
avg(Aggr(Sum([# Сумма]), Группа, Подгруппа))
avg(Aggr(Sum([# Сумма])/Count(Подгруппа), Группа, Подгруппа))

Q: Дано:

Client, Product, Date, Sales
1, Apple, 01-01-2015, 750
1, Mango, 01-02-2015, 450
1, Limon, 01-02-2015, 350
2, Apple, 01-01-2015, 1750
2, Mango, 01-02-2015, 550
3, Limon, 01-01-2015, 250

Limon покупали все 3 клиента. А как мне найти тех клиентов, которые покупали и Limon и Mango ? Причем именно два товара вместе ( 2-ой и 3-ий клиент уже не подойдут).

A: Если в Дименшене оставить Client и прописать.

Код: [Выделить]
if(sum( {}) >} Sales)> 0,
if (sum( {}) >} Sales)>0,
sum(Sales),
0))

То суммы будут только у клиентов которые купили и то и то. Но правда если клиентов схлопнуть до других показателей, то данные могут разъехаться.

Найти решение у бизнес-партнера QlikTech (QlikView) в России.

Форум разработчиков QlikView и Qlik Sense. Получите ответы на все вопросы по QlikView и Qlik Sense!

61 queries in 0,351 seconds