Таблицы в LuckyTemplates: типы и отличия

Таблицы в LuckyTemplates: типы и отличия

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

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

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

Существует реальное различие между типами таблиц в LuckyTemplates.

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

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

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

Таблицы в LuckyTemplates: типы и отличия

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

Таблицы в LuckyTemplates: типы и отличия

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

Таблицы в LuckyTemplates: типы и отличия

Итак, первое, что мы знаем о том, что фруктовый слайсер должен быть отключенным столом слайсера. Если бы это был обычный слайсер, вы бы нажали на апельсин, и он практически удалил бы все, кроме апельсина, со стола. Мы также знаем, что из-за динамизма у нас возникла проблема с виртуальной таблицей.

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

Оглавление

Три типа таблиц в LuckyTemplates

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

Таблицы в LuckyTemplates: типы и отличия

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

Таблицы в LuckyTemplates: типы и отличия

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

Та, которую часто путают с виртуальной таблицей, — это вычисляемая таблица или то, что мы также можем назвать таблицей выражений DAX. Это имеет прямую аналогию с вычисляемыми столбцами, которые создаются с помощью выражений DAX . Это делается с помощью вкладки «Моделирование» и параметра «Новая таблица», а затем вы вводите выражение DAX.

Та, которую часто путают с виртуальной таблицей, — это вычисляемая таблица или то, что мы также можем назвать таблицей выражений DAX. Это имеет прямую аналогию с вычисляемыми столбцами, которые создаются с помощью выражений DAX. Это делается с помощью вкладки «Моделирование» и параметра «Новая таблица», а затем вы вводите выражение DAX.

Таблицы в LuckyTemplates: типы и отличия

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

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

Таблицы в LuckyTemplates: типы и отличия

Как правило, вычисляемые таблицы используются для вспомогательных таблиц и чаще используются для отладки. Сейчас есть более совершенные инструменты, такие как DAX Studio и Tabular Editor, поэтому они используются для этого не так часто. Вы просматриваете эту таблицу через представление данных.

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

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

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

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

Вы можете визуализировать эти таблицы в таких инструментах, как DAX Studio, Tabular Editor или New Table, что опять же, вероятно, является наименее желательным способом, поскольку он загромождает вашу модель данных кучей дополнительных таблиц, если вы не удалите это.

Решение для измерения DAX для виртуальной таблицы

Возвращаясь к вопросу Эштона, взглянув на таблицу, мы можем сказать, что она динамическая. Мы также можем сделать несколько вариантов, и это полностью меняется на лету. И поэтому мы знаем, что это виртуальная таблица, потому что две другие (физическая и вычисляемая таблицы) не являются полностью динамическими. Мы также знаем, что это отсоединенная таблица, как я упоминал в начале.

Таблицы в LuckyTemplates: типы и отличия

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

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

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

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

Таблицы в LuckyTemplates: типы и отличия

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

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

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

Мы можем проверить это, выполнив запрос DAX. Мы можем сделать это либо в DAX Studio, либо в табличном редакторе. Итак, давайте возьмем нашу меру виртуальной таблицы, скопируем ее в табличный редактор. Мы позаботимся о том, чтобы он давал нам значения, которые мы ожидаем увидеть, а именно Джо и Мэри.

Таблицы в LuckyTemplates: типы и отличия

Запросы DAX всегда возвращают таблицы и всегда начинаются с EVALUATE, поэтому мы добавляем сюда EVALUATE. Однако в результате мы ничего не получаем. Это связано с тем, что выбранная переменная урожая отключенных фруктов ( SelDisconnFruit ) не знает о слайсере. Это вне контекста.

Таким образом, способ проверить это — искусственно установить значение слайсера. Здесь мы заменим SelDisconnFruit небольшой таблицей. Введите Orange (значение этого слайсера) между волнистыми скобками . И теперь мы получаем здесь результат, а именно Джо и Мэри. При этом виртуальный стол работает именно так, как мы и предполагали.

Таблицы в LuckyTemplates: типы и отличия

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

Итак, у нас есть виртуальная таблица, которая сообщает нам, какие клиенты купили фрукты, которые были в слайсере стоимости. Мы можем настроить другую переменную ( VAR BuyerIn ), которая говорит, что если выбранный клиент был в таблице этого покупателя, то он получает единицу . А если нет, то получает ноль .

Таблицы в LuckyTemplates: типы и отличия

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

Таблицы в LuckyTemplates: типы и отличия

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


Виртуальные таблицы внутри повторяющихся функций в LuckyTemplates — концепции DAX
Создание виртуальных отношений в LuckyTemplates с использованием функции TREATAS
Как использовать функцию DAX COUNTROWS в виртуальных таблицах

Заключение

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

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

Ваше здоровье!


Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Как сохранить и загрузить файл RDS в R

Как сохранить и загрузить файл RDS в R

Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

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

Введение в фильтрацию контекста в LuckyTemplates

Введение в фильтрацию контекста в LuckyTemplates

В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.

Идеи материализации кэшей данных в DAX Studio

Идеи материализации кэшей данных в DAX Studio

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

Бизнес-отчетность с использованием LuckyTemplates

Бизнес-отчетность с использованием LuckyTemplates

Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать