Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Join us to spark ideas for how to put the latest capabilities into action. Register here!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

How to get value of top 2 vendors spend for a particular item

How to get value of top 2 vendors spend for a particular item.

This is my sample data

  

Item ID Vendoe name Spend 
5112Vendor 1 3,000.00
5112Vendor 2 20,000.00
5112Vendor 3 25,000.00
6113Vendor 1 34,560.00
7889Vendor 1 56,000.00
9887Vendor 1 670,000.00
6113Vendor 2 34,520.00
9887Vendor 2 120,000.00
7889Vendor 2 3,000.00
5112Vendor 4 75,000.00
7889Vendor 3 10,000.00
9887Vendor 3 14,000.00
6113Vendor 3 98,760.00
3456Vendor 1 34,560.00
6113Vendor 4 100,000.00
7889Vendor 4 2,000.00
4562Vendor 1 456,890.00
6113Vendor 5 2,000.00
5112Vendor 5 60,000.00
3452Vendor 1 23,480.00
9870Vendor 1 18,000.00
9870Vendor 2 26,000.00
3452Vendor 2 35,000.00
6113Vendor 6 5,000.00
9887Vendor 4 12,556.00

Here i want to get total spend of top 2 vendors based on spend (i.e vendor 4 and vendor 3) for  an item ID 6113. I don't want to write 6113 in formula, it should be automatic, it is 3rd item based on total spend.

1 Solution

Accepted Solutions
MK_QSL
MVP
MVP

If you want Vendor and Item selection should not affect the text boxes output then use below expression.

=SUM(

  {<

  [Item ID] = {'$(=FirstSortedValue({<[Item ID],[Vendor name]=>}[Item ID],  -Aggr(SUM({<[Item ID]=,[Vendor name]=>}Spend),[Item ID]), 4))'},

  [Vendor name] = {"=Rank(SUM({<[Vendor name], [Item ID] = {'$(=FirstSortedValue({<[Item ID],[Vendor name]=>}[Item ID],  -Aggr(SUM({<[Item ID]=,[Vendor name]=>}Spend),[Item ID]), 4))'}>}Spend))<=2"}

  >}

Spend)

Happy Qliking !

View solution in original post

47 Replies
Not applicable
Author

I don't want to write vendor names also

jonathandienst
Partner - Champion III
Partner - Champion III

Perhaps you could show us what you would like to get as a result from your sample data. That might help to clarify your requirements.

Logic will get you from a to b. Imagination will take you everywhere. - A Einstein
Not applicable
Author

I need this amount 1,98,760, it comes from item ID 6113, vendor 3 and vendor 4 (i.e. 100,000+98,760).

MK_QSL
MVP
MVP

How you want this output?

Text Box, Pivot Table, Chart?

Can you provide final output you are looking for?

Not applicable
Author

text box

MK_QSL
MVP
MVP

So you want for only one Item ID?

or for all?

MK_QSL
MVP
MVP

Use this..

=SUM(Aggr(IF(Aggr(Rank(SUM(Spend),4),[Item ID],[Vendoe name])<=2,SUM(Spend)),[Vendoe name],[Item ID]))

Anonymous
Not applicable
Author

Firstsortedvalue will get you the vendor names;

FirstSortedValue([Vendoe name],-Spend)  //- Top Spend Vendor

FirstSortedValue([Vendoe name],-Spend,2)    //-2nd spend Vendor

Max will get you the spend;

=Max(Spend) //- Top Spend

+

Max(Spend,2) //- 2nd Spend



This will change based on selections.

To get only Item 6113

=Max({<[Item ID]={6113}>}Spend)

+

Max({<[Item ID]={6113}>}Spend, 2)

MK_QSL
MVP
MVP

And if you want only for 6113, use as below..

=SUM(Aggr(IF(Aggr(Rank(SUM({<[Item ID] = {'6113'}>}Spend),4),[Item ID],[Vendoe name])<=2,SUM({<[Item ID] = {'6113'}>}Spend)),[Vendoe name],[Item ID]))