Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Ноябрь 17, 2018, 03:59:55 pm

Автор Тема: Показать часть таблицы по заданному параметру  (Прочитано 840 раз)

Оффлайн Elena

  • Новичок
  • *
  • Сообщений: 12
  • Страна: ru
  • Рейтинг: +0/-0
    • Просмотр профиля
Здравствуйте, уважаемые специалисты QV!
Помогите мне, пожалуйста, разобраться с таблицей, как в ней можно вывести имена(поле "name" и соответствующие им суммы(столбец "PeopleCount" ) занимающих  первые 75% доли от общей суммы:
То есть должны быть выведена вот эта часть таблицы:
Названия строк   Сумма по полю PeoplesCount   Доля
Ada   1482000   18,19%
Aaron   1110000   13,62%
Ace   846000   10,38%
Abdullah   669000   8,21%
Abdul   504000   6,19%
Abraham   456000   5,60%
Abel   417000   5,12%
Abbott   358000   4,39%
Abigail   258000   3,17%
Доля этой выборки  составляет 74.86% примерно 75%
Я приложила файл QV к сообщению. Скажите можно ли решить требуемый вопрос написанием подходящего выражения или необходимо писать макрос?
Буду невероятно благодарна помощи!

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1215
  • Страна: ru
  • Рейтинг: +129/-0
    • Просмотр профиля
Привет.
Попробуйте создать таблицу с измерением name и выражением:
if(
RangeSum(
Above(
sum(aggr(Sum (PeoplesCount),name))/sum(aggr(Sum (total PeoplesCount),name))
,0,RowNo()))<0.75,
Sum (PeoplesCount))

Оффлайн Elena

  • Новичок
  • *
  • Сообщений: 12
  • Страна: ru
  • Рейтинг: +0/-0
    • Просмотр профиля
Хм, спасибо за совет, сделала как вы сказали, но результат неутешительный....не выводит нужный диапазон, да ещё и сумма в итоге на миллион превышает совокупную исходную...
А у вас  получилось вывести первые 75% ? может я что-то не так делаю....
Должно получиться на выходе:

https://ibb.co/manWCH

Неофициальный форум пользователей QlikView & Qlik Sense


Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1215
  • Страна: ru
  • Рейтинг: +129/-0
    • Просмотр профиля
Формула рабочая:
if(RangeSum(
Above(
sum(aggr(Sum (PeoplesCount),name))/sum(aggr(Sum (total PeoplesCount),name))
,0,RowNo())
)<0.75,
sum(aggr(Sum (PeoplesCount),name)),0)
Таблицу сортируем по выражению для поля name sum(aggr(Sum (PeoplesCount),name))
(Извините, но вы не имеете доступа к галерее)

Проверял в Qlik Sense, но это сути не меняет.

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1215
  • Страна: ru
  • Рейтинг: +129/-0
    • Просмотр профиля
Выше выложил рабочую формулу.
Вам необходимо будет понять работу функций:

Оффлайн Elena

  • Новичок
  • *
  • Сообщений: 12
  • Страна: ru
  • Рейтинг: +0/-0
    • Просмотр профиля
Простите меня, что я вас отвлекаю, но посмотрите мой файл в который я вставила код.
В нём выводится абсолютно вся таблица, а не только 75 процентов и к тому же какие-то странные суммы....

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1215
  • Страна: ru
  • Рейтинг: +129/-0
    • Просмотр профиля
Сортировку делали?

Неофициальный форум пользователей QlikView & Qlik Sense


Оффлайн Elena

  • Новичок
  • *
  • Сообщений: 12
  • Страна: ru
  • Рейтинг: +0/-0
    • Просмотр профиля
сортировку делала, может какая-то ещё существует сортировка, но мне надо чтобы вывелось на экран только то что у вас на картинке, а не вся таблица только отсортированная....мне необходимо в дальнейшем выгружать из QV в ексель эту часть(75 проц от всего)

Оффлайн Elena

  • Новичок
  • *
  • Сообщений: 12
  • Страна: ru
  • Рейтинг: +0/-0
    • Просмотр профиля
А можно ли как-то выделить нижнюю границу искомого списка? Тогда достаточно применить простую формулу Sum (PeoplesCount)/sum(Sum (total PeoplesCount), отсортировать и настроить так чтобы цветом выделилась граница и тогда легко было бы видно что зафильтровать и выгрузить

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1215
  • Страна: ru
  • Рейтинг: +129/-0
    • Просмотр профиля
Используйте обычную таблицу вместо сводной.
Вы выводите значение PeoplesCount как измерение, зачем? все выражения строятся по Name и Сумме для каждой строки.
Уберите расчет доли, его тоже надо делать с условиями.

Оффлайн Elena

  • Новичок
  • *
  • Сообщений: 12
  • Страна: ru
  • Рейтинг: +0/-0
    • Просмотр профиля
Re: Показать часть таблицы по заданному параметру
« Ответ #10 : Апрель 12, 2018, 01:44:22 pm »
А в можете приложить свой файл с формулой...не могу я понять почему у меня она не срабатывает...

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1215
  • Страна: ru
  • Рейтинг: +129/-0
    • Просмотр профиля
Re: Показать часть таблицы по заданному параметру
« Ответ #11 : Апрель 12, 2018, 03:06:01 pm »
Я открываю в Qlik Sense ваш файл.
Оставьте 2 столбца, имя и формулу.
включите простую таблицу.
в Сортировке по name пропишите формулу sum(aggr(Sum (PeoplesCount),name)).

Оффлайн Elena

  • Новичок
  • *
  • Сообщений: 12
  • Страна: ru
  • Рейтинг: +0/-0
    • Просмотр профиля
Re: Показать часть таблицы по заданному параметру
« Ответ #12 : Апрель 12, 2018, 05:13:36 pm »
но когда я (уже в простой таблице) отфильтровываю первые имена занимающие 75 процентов, то обнуляются суммы последних пяти из зафильтрованного списка(( я файл таблицы прикрепила

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1215
  • Страна: ru
  • Рейтинг: +129/-0
    • Просмотр профиля
Re: Показать часть таблицы по заданному параметру
« Ответ #13 : Апрель 12, 2018, 07:09:10 pm »
но когда я (уже в простой таблице) отфильтровываю первые имена занимающие 75 процентов,

Каким образом?

Оффлайн Elena

  • Новичок
  • *
  • Сообщений: 12
  • Страна: ru
  • Рейтинг: +0/-0
    • Просмотр профиля
Re: Показать часть таблицы по заданному параметру
« Ответ #14 : Апрель 20, 2018, 04:24:53 pm »
Добрый день, отсортированный список(только 75 процентов)  мне надо вывести в ексель, поэтому я выделяю в QV первые имена, чтобы отправить в файл нужную информацию. При этом последние в данном примере пять имен обнуляются((

Неофициальный форум пользователей QlikView & Qlik Sense

Re: Показать часть таблицы по заданному параметру
« Ответ #14 : Апрель 20, 2018, 04:24:53 pm »