Куб из визуализации в кросс-таблицу

0 голосов
Елена Гут в категории Как сделать...
Добрый день. Есть в визуализации куб, где измерения в столбцах - даты, измерения в строках - значения одного текстового поля, которое принимает значения "да", "нет" и пропуски, а фактах - количество. Нужно найти долю "да". Как это сделать в визуализации, не понимаю. Когда я пытаюсь сформировать кросс-таблицу, чтобы там найти долю, не формируется столбец с пропусками, а он нужен для суммы. Попытка менять на что-то пропуски через замену успехом не увенчалась, все равно пропуски не формируются в столбец в кросс-таблице. Через калькулятор и создание еще одного поля не хочется. Подскажите пожалуйста, может есть простой выход.

Ответ: 1 шт.

0 голосов
stanislav levin

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

В визуализаторе Куб добавить поле с датами в колонки (столбцы), строковое поле с "да", "нет" и пропусками в строки, далее по кнопке Настроить факты выбрать Количество - Значение и Процент по вертикали.

Таким образом, по каждой дате будет вычислено количество и доля от общего количества в столбце значений "да", "нет" и пропусков.

Елена Гут
Добрый день. Спасибо! То же самое в кросс-таблице не получится? Мне бы проценты отдельной строкой, то есть три строки абсолютные значения и три строки относительные значения.
stanislav levin

Для кросс-таблицы придётся отдельно считать относительные значения. Один из возможных алгоритмов:

  1. С помощью кросс-таблицы получить столбцы с количеством значений "да", "нет", "пропуск" по каждой дате.
  2. Посчитать с помощью калькулятора относительные значения.
  3. Если необходимы даты в столбцах и 6 строк с абсолютными и относительными значениями, то можно снова воспользоваться узлом Кросс-таблица.
Елена Гут
В кросс-таблице мне не удалось сформировать отдельный столбец с пропусками, формируется только "да", "нет".
stanislav levin
Нужно пропущенные значения заменить, на что-то, например, на строковое значение "пропуск".

Далее пересоздать узел кросс-таблица, либо в настройках узла включить параметр "Скользящие уникальные значения".
Елена Гут
как правильно прописать замену, подскажите пожалуйста, вот так не срабатывает:

узел "Замена", точное совпадение, с обеих сторон строковые, слева <пустая строка>, справа "пропуск"
stanislav levin

Тут есть один важный момент: в Loginom пустая строка ("") и пропущенное значение (<NULL>) - это разные вещи.

Скорее всего у вас именно <NULL>.
Если вы заполняете пропуски с помощью узла Замена, то необходимо в поле для ввода значения нажать на крестик, тогда вместо замены пустой строки будет заменяться <NULL>. Это описано в документации - https://help.loginom.ru/userguide/processors/transformation/substitution/exact-match.html

Также заменить пропуски можно с помощью компонента Заполнение пропусков или функцией NVL в Калькуляторе.

Особенности работы с <NULL> в Loginom описаны в статье - https://loginom.ru/blog/null-loginom

Елена Гут
Спасибо, поняла, получилось
Елена Гут
Подскажите пожалуйста, если в кубе по столбцам годы, факты - количество или сумма ряда полей, как оптимальнее посчитать в этом же или в другом кубе изменения год к году?
Елена Гут
И еще вопрос, если можно. В кубе в визуализаторе, если получаются незаполненные значения (в какой-то период события отсутствуют), это не мешает подсчету итоговых значений по столбцам. В кросс-таблице в такой же ситуации итог не считается. Получается, после кросс-таблицы надо делать еще замену пропусков?
stanislav levin

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

Если в кросс-таблице при расчёте агрегатов получаются пропуски, то их необходимо каким-либо образом обрабатывать (заполнять, удалять и т.д. - https://loginom.ru/blog/missing).

Елена Гут

Пардон, можно подробнее пожалуйста про расчет динамики. Вот у меня есть к примеру кросс-таблица, где данные агрегированы по годам и по полю, принимающему условно значения "да", "нет". Для Data() нужно чтобы годы были в строках? И дальше я в калькуляторе создаю новое поле, которое значение в строке с номером 1 делит на строку с номером 2 (условно)? Тогда в кубе наверное проще поделить одну строку на другую.
Про пропуски в кросс-таблице, поняла, спасибо, немного удивило, что логика не такая как в кубе. 

stanislav levin

Если вам необходимо рассчитать динамику одного года относительно предыдущего, то даты (года) можно расположить в строках, а в колонках будут значения поля с "да" и "нет".
Пример выражения в калькуляторе для расчёта динамики по годам по полю "да":

Data("da", rownum())/Data("da", rownum()-1)

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

"Тогда в кубе наверное проще поделить одну строку на другую." - не совсем понял про что конкретно идёт речь и каким образом это планируется сделать.

Елена Гут
Спасибо. Мой вариант не получится, потому что в кросс-таблице дата не может быть столбцом. А почему кстати такое ограничение?
stanislav levin

Даты можно добавить в столбцы в кросс-таблице, если это поле будет иметь дискретный вид данных - https://help.loginom.ru/userguide/processors/transformation/cross-table.html#kolonki

Вид данных можно поменять с помощью узла Параметры полей.

Елена Гут
Спасибо!
...