Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Операции над двумя списками

Доброго времени суток.

Столкнулся с интересным вопросом используя QlikView.

Существует таблица с выполненными продажами (один столбец) и агентами (два столбца)

Одну продажу могут совершать один или два агента (один и тот же агент может в разных продажах может быть как в первом так и во втором списке)

Вопрос: как подсчитать и вывести (в один столбец)  общее количество продаж совершенных каждым агентом?

Безымянный.jpg

Проблема вывести их в один столбец, т.к. QlikView воспринимает агентов с одинаковыми фамилиями но в разных столбцах как разных людей.

Заранее благодарен.

1 Solution

Accepted Solutions
robert_mika
Master III
Master III

Попробуйте ,

t1:

LOAD Agent1 AS Agent,

      Agent1,

      Agent2,

     Sales

FROM

[..\..\161489.xlsx]

(ooxml, embedded labels, table is Sheet1);

Concatenate

CONCATENATE (t1)

t2:

LOAD Agent2 as Agent,

     Sales

FROM

[..\..\161489.xlsx]

(ooxml, embedded labels, table is Sheet1);

24-Apr-15 11-35-36 AM.jpg

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

View solution in original post

7 Replies
Eugeny_Ilyin
Creator II
Creator II

Если не смущает, что общий итог продаж будет завышен, то можно примерно так:

Продажи:

load Агент1 as Агент,  Продажа from ...;

load Агент2 as Агент,  Продажа from ...;

robert_mika
Master III
Master III

t1:

LOAD Agent1 as A,

          Sales

    

FROM

[161489.xlsx]

(ooxml, embedded labels, table is Sheet1);

Concatenate

CONCATENATE (t1)

t2:

LOAD Agent2 as A,

     Sales

FROM

[161489.xlsx]

(ooxml, embedded labels, table is Sheet1);

2015-04-24 05_45_48-Microsoft Excel - 161489.xlsx.png

Not applicable
Author

Да, я бы ещё в конечной таблице убрала бы total, чтобы он не пугал завышенной суммой

и supress when value is null для этого dimention, чтобы строку с продавцом "-" убрать

Anonymous
Not applicable
Author

Большое спасибо все прекрасно работает.

Но есть один нюанс: если я например хочу видеть все продажи по агенту "G" и кликаю на него, но в списке Agent2 из исходной таблицы, то никаких действий в таблице sum(Sales) не происходит их возможно соединить?

robert_mika
Master III
Master III

Попробуйте ,

t1:

LOAD Agent1 AS Agent,

      Agent1,

      Agent2,

     Sales

FROM

[..\..\161489.xlsx]

(ooxml, embedded labels, table is Sheet1);

Concatenate

CONCATENATE (t1)

t2:

LOAD Agent2 as Agent,

     Sales

FROM

[..\..\161489.xlsx]

(ooxml, embedded labels, table is Sheet1);

24-Apr-15 11-35-36 AM.jpg

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

Eugeny_Ilyin
Creator II
Creator II

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

По сути, мы получили ту же таблицу "Пример", правда с потерей некоторой информации. Но отвечающую на вопрос :"как подсчитать и вывести (в один столбец)  общее количество продаж совершенных каждым агентом?"

При этом мы потеряли часть сведений, и не можем ответить на вопросы:

- Сколько совместных покупок совершено каждым агентом.

- Какие пары самые эффективные в продажах.

- Кто чаще играет ведущую роль (Агент1)

- Кто чаще выступает в роли второго Агента. (если имеет значение в каком поле ФИО агента)

Наверняка, это лишь небольшая часть задачи, которую вы решаете.

Здесь следует пошире взглянуть, и оценить целиком имеющиеся данные, вопросы и задачи.

А что касается ответа на вопрос, привожу пример:

пример:

LOAD * , recno() as idRow INLINE [

    Агент1, Агент2, Продажа

    A, , 1

    B, A, 1

    C, E, 1

    D, F, 1

    E, , 1

    B, G, 1

    D, B, 1

];

АгентПродажа:

LOAD idRow, Агент1 As Агент, Продажа As Продажи Resident пример Where len(Агент1)>0;

LOAD idRow, Агент2 As Агент, Продажа As Продажи Resident пример Where len(Агент2)>0;

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

Anonymous
Not applicable
Author

Огромная благодарность Eugenyllyin и Robert Mika, все работает.

Да Eugenyllyin, вы правы это часть задачи на самом деле измерений около 10-ти (Регион, Компания и т.д) и задачу придется решать комплексно.