Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Добрый день.
Что-то никак не соображу, как в динамическую таблицу добавить нужную мне вычисляемую колонку.
Имена строк у меня добавляются из базы с помощью выборки:
"If(table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='050', 'Financial assets held for trading',
If(table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='100', 'Financial assets designated at fair value through profit or loss',
If(table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='240', 'Derivatives – Hedge accounting',
If(table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='270', 'Tangible assets',
If(table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='300', 'Intangible assets',
If(table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='360', 'Other assets ',
If(table_code='f_01.01' and rc_code_de_colonne='010' and rc_code_de_ligne='380', 'TOTAL ASSETS'
)))))))"
Колонки - это поле "Дата сдачи отчета".
Т.е. в значениях я получаю значение на определенную дату. Мне нужно минимально отнять от колонки 2017-09-30 колонку 2017-06-30. Проблема в том, что т.к. поле "Дата сдачи отчета" в базе единое я не могу просчитать разницу, указывая поля.
Я пробовала использовать формулы анализа
sum({$<table_code={'f_01.01'}, rc_code_de_colonne={'010'}, rc_code_de_ligne={'100'}, date_d_arrete={'2017-09-30'}> value_monetary} - sum({$<table_code={'f_01.01'}, rc_code_de_colonne={'010'}, rc_code_de_ligne={'100'}, date_d_arrete={'2017-06-30'}> value_monetary}))
Но это все равно не сработало.
Как можно просчитать разницу колонок таблицы при такой выборке? Собственно, тип таблицы при этом не важен, динамическая или нет, важно отобразить строку с названием, колонки с данными по датам и разницу между этими колонками.
Спасибо заранее!
Да, я примерно так и сделала вчера Работет и, надеюсь, работать продолжит.
Только я не метками размечала, а через переменные задавала, т.к. рассчета колонки как такового нет, я ставлю в колонку поле "дата сдачи отчета", а так как дат в базе 2 - Клик разбивает данные по 2 колонкамм автоматически. Любые рассчеты с полем "дата сдачи отчета" приводят к тому, что вместо даты появляется "0", "1" или "-1". Приходится выкручиваться.
Здравствуйте!
Выполните разницу колонок метками. В выражении, где выполняете расчет колонки в поле метка введите 2017-09-30 и 2017-06-30 соответственно.
Дальше добавьте новую колонку по расчету разницы, заключив в квадратные скобки указанные метки.
=[2017-09-30 ] - [2017-06-30].
Может при операции с метками в редакторе выражений предупреждать об ошибке, нужно проигнорировать.
Привет.
Татьяна, посмотрите вот это расширение:
https://github.com/leematthewshome/Qlik-Sense-Transposed-Table-Extension
В нем строки задаются выражениями, а колонки измерением.
Так будет легче получить желаемый результат.
О том, как добавлять колонки для расчета разницы - написано в док-файле.
Вопрос в том, каким именно выражением задать рассчет разницы значений. Приведенное мной у меня не работает. Ошибки синтаксиса я в нем исправила.
sum(${<table_code={'f_01.01'}, rc_code_de_colonne={'010'}, rc_code_de_ligne={'100'}, date_d_arrete={'2017-09-30'}>} value_monetary) -
sum(${<table_code={'f_01.01'}, rc_code_de_colonne={'010'}, rc_code_de_ligne={'100'}, date_d_arrete={'2017-06-30'}>} value_monetary)
К тому же в приведенном расширении я не могу задать именно нужный мне вид таблицы: мера не выводит колонки по датам
Колонки по датам задаются измерением,
в случае простой таблицы, для получения значения колонки можно использовать column(n)
Если вы задаете для каждой даты отдельное выражением, то в третьей колонке можете написать простое выражение column(2)-column(1)
Измерения можно создать через скрипт, используя выражение aggr(), valuelist() ( но лучше через скрипт).
Это не работает, потому что Клик в простой таблице не хочет показывать 1 строку и 2 столбца значений, он мне выдает таблицу вида:
Имя | 2017-06-30 | 2017-09-30 |
---|---|---|
Показатель1 | 215487 | - |
Показатель1 | - | 587523 |
Как мне его убедить в таком случае выдавать мне таблицу в ее адекватном виде:
Имя | 2017-06-30 | 2017-09-30 |
---|---|---|
Показатель1 | 215487 | 587523 |
?
Можете выложить или скинуть сообщением фрагмент данных?
Или само приложение.
Я разобралась в проблеме: т.к. для базы данных это разные строки, Клик не может вместить их на одну строку таблицы. У нас слишком нестандартная для Клика база данных, так что приходится выкручиваться.
Спасибо за помощь!
Да, я примерно так и сделала вчера Работет и, надеюсь, работать продолжит.
Только я не метками размечала, а через переменные задавала, т.к. рассчета колонки как такового нет, я ставлю в колонку поле "дата сдачи отчета", а так как дат в базе 2 - Клик разбивает данные по 2 колонкамм автоматически. Любые рассчеты с полем "дата сдачи отчета" приводят к тому, что вместо даты появляется "0", "1" или "-1". Приходится выкручиваться.