Skip to main content
Announcements
Qlik Introduces a New Era of Visualization! READ ALL ABOUT IT
cancel
Showing results for 
Search instead for 
Did you mean: 
Rut
Contributor II
Contributor II

Calculating Volumes for Top Trade Partners

I have data with trade volumes between 2 locations further divided into more categories in Qlik Sense:

Rut_0-1681299343595.png

I want to create a Table showing the Top 1 to 3 Trade Partners (To) for each Location (From) and the trade volume like this:

Rut_1-1681299685821.png

 

I have been able to get the Top X To Location using "=Only(Aggr(If(Rank(Sum(Volume))=X, To), From, To))" or "FirstSortedValue(To, -Aggr(Sum(Volume), From, To), X)".

However I struggle to create an expression to calculate the total Volumes for all From-To Pairs. All Set Analysis Expressions I create are evaluated on a global level and not per row.

I would appreciate if you could help me with this.

Thanks!

 

 

Here is the code used for this example:

Data:
NoConcatenate Load
F as From,
T as To,
C as Category,
V as Volume
Inline [
F, T, C, V
A, B, 1, 15
A, B, 2, 12
A, C, 1, 63
A, C, 2, 29
A, D, 1, 7
A, D, 2, 30
A, E, 1, 13
A, E, 2, 39
B, A, 1, 31
B, A, 2, 24
B, C, 1, 62
B, C, 2, 61
B, D, 1, 47
B, E, 1, 59
B, E, 2, 13
C, A, 1, 28
C, A, 2, 47
C, B, 1, 11
C, B, 2, 8
C, D, 1, 3
C, D, 2, 31
C, E, 1, 25
C, E, 2, 25
D, A, 1, 73
D, A, 2, 15
D, B, 1, 12
D, B, 2, 16
D, C, 1, 14
D, E, 2, 72
E, A, 1, 4
E, A, 2, 6
E, B, 1, 5
E, B, 2, 27
E, C, 1, 69
E, C, 2, 9
E, D, 1, 4
E, D, 2, 31
];

Labels (1)
1 Solution

Accepted Solutions
Kushal_Chawda

@Rut  try below

Top 1 To:
=FirstSortedValue(distinct To , -aggr(Sum(Volume), From, To),1)

Top 1 Volume:
=FirstSortedValue(aggr(Sum(Volume),From, To) , -aggr(Sum(Volume), From, To),1)

Top 2 To:
=FirstSortedValue(distinct To , -aggr(Sum(Volume), From, To),2)

Top 2 Volume:
=FirstSortedValue(aggr(Sum(Volume),From, To) , -aggr(Sum(Volume), From, To),2)

...

View solution in original post

2 Replies
Kushal_Chawda

@Rut  try below

Top 1 To:
=FirstSortedValue(distinct To , -aggr(Sum(Volume), From, To),1)

Top 1 Volume:
=FirstSortedValue(aggr(Sum(Volume),From, To) , -aggr(Sum(Volume), From, To),1)

Top 2 To:
=FirstSortedValue(distinct To , -aggr(Sum(Volume), From, To),2)

Top 2 Volume:
=FirstSortedValue(aggr(Sum(Volume),From, To) , -aggr(Sum(Volume), From, To),2)

...
Rut
Contributor II
Contributor II
Author

Simple and works perfectly. Thanks a lot @Kushal_Chawda!