Создание фильтра динамического рассеяния на основе одного поля в таблице - PullRequest
0 голосов
/ 03 октября 2019

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

Данныеоснован на следующей таблице:

  • Раскрывающийся список - это поле / размеры фильтра
  • Сегмент - это то, как точки на диаграмме рассеянияразделены / сгруппированы
  • Значение - это значения, назначенные полям раскрывающегося списка / сегмента

Scatterplot_Table Layout

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

SELECT DISTINCT    
   Size.Dropdown AS Size,    
   XAxis.Dropdown AS XAxis,    
   YAxis.Dropdown AS YAxis,    
   Segment.Segment    
FROM ScatterPlot Size    
   CROSS APPLY     
   (    
      SELECT DISTINCT Dropdown    
      FROM ScatterPlot innerTemp1    
   ) XAxis  
   CROSS APPLY    
   (    
      SELECT DISTINCT Dropdown    
      FROM ScatterPlot InnerTemp2    
   ) YAxis    
   CROSS APPLY    
   (    
      SELECT DISTINCT Segment    
      FROM ScatterPlot InnerTemp3
   ) Segment

С помощью этой справочной таблицы для среза данных я дублирую диаграмму рассеяния. источник данных для представления значений X, Y и Size и построения их средних значений.

Scatterplot Lookup

Scatterplot Size Scatterplot XAxis Scatterplot YAxis

Проблема в масштабе производства: ~ 50 различных выпадающих значений и ~ 200 значений для сегментов. Это создаст таблицу поиска с 25 000 000 (50 * 50 * 50 * 200) значений, и если какой-либо фрагмент будет увеличен, это число будет расти экспоненциально.

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

Есть ли способ манипулирования поступающими данными или способ манипулирования данными в Таблице для достижениявыпадающий выпадающий график рассеяния?

Ссылку на файл можно найти здесь .

Спасибо!

...