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: 
andrea90casa
Creator
Creator

First Price Calculation

Hi at all,

I have this situation

So i have several products and the date of purchase and the relative unit price.

I created a field called "Prima data" where i select, for each product, the first date of purchased and then i would like to obtain, for each product, the price of purchased at the first date. The problem is that in the last column i used this formula

aggr(nodistinct avg({<data={"$(MinData)"}>}Unit_Price), Product)

but it calc the unit price only for the first date of the entire data set (in this example was product A purchased at 01/01/2017 at 1,1).

Is there any solution in order to calc the first price for each product?

Andrea

1 Solution

Accepted Solutions
avkeep01
Partner - Specialist
Partner - Specialist

Hi Andrea,

Are you able to update the script? In that case you can add the script below:

dataset:

LOAD data,

     Prodotto as Product,

     Prezzo_Uni as Unit_Price,

     Categoria as Category,

     Quantità as Quantity,

     Conto

FROM

(ooxml, embedded labels, table is Foglio1);

LEFT JOIN LOAD

Product,

MIN(data) AS data,

1 AS IsFirstPrice

RESIDENT dataset

GROUP BY Product;

LEFT JOIN LOAD

Product,

MAX(data) AS data,

1 AS IsLastPrice

RESIDENT dataset

GROUP BY Product;

View solution in original post

10 Replies
vishsaggi
Champion III
Champion III

Can you share a sample file to look into?

andrea90casa
Creator
Creator
Author

Hi Vishwarath

Here you are

vishsaggi
Champion III
Champion III

Try this in your price min data

= Aggr(avg({< data = {"= Aggr( min(data), Product)" } > }Unit_Price), Product)

andrea90casa
Creator
Creator
Author

Thanks Vish

I tried with min function and it works, then i tried to change min with max function but the result doesn't change.

For example for Product E i would like to see 1,2 as min data and 1,22 as max data

= Aggr(avg({< data = {"= Aggr( min(data), Product)" } > }Unit_Price), Product)

= Aggr(avg({< data = {"= Aggr( max(data), Product)" } > }Unit_Price), Product)

avkeep01
Partner - Specialist
Partner - Specialist

Hi Andrea, Are you using the expression in the chart with the dimension Product? Then you can drop the aggregation on product within the Set analysis.


= Aggr(ONLY({< data = {"$(=  MAX(data))" } > }Unit_Price), Product)

antoniotiman
Master III
Master III

Try this

Aggr(NODISTINCT FirstSortedValue(DISTINCT Unit_Price,data),Product)

andrea90casa
Creator
Creator
Author

Thanks A.M.

Now it works but when i select only one product (and it could be useful). But how can i do if i would like to obtain an aggregated result, for example:

I have list of product with first price and last price, and i have the total quantity of product purchased.

I can create two purchased amount:

First Price * Quantity

Last Price * Quantity

And then i can subract the second term to the first in order to obtain a simulated saving for each product.

then it could be useful sum all these amount (for a specific category of purchase for example) and obtain a total saving for each category.

But with only function i can't do that i supposed

avkeep01
Partner - Specialist
Partner - Specialist

Hi Andrea,

Are you able to update the script? In that case you can add the script below:

dataset:

LOAD data,

     Prodotto as Product,

     Prezzo_Uni as Unit_Price,

     Categoria as Category,

     Quantità as Quantity,

     Conto

FROM

(ooxml, embedded labels, table is Foglio1);

LEFT JOIN LOAD

Product,

MIN(data) AS data,

1 AS IsFirstPrice

RESIDENT dataset

GROUP BY Product;

LEFT JOIN LOAD

Product,

MAX(data) AS data,

1 AS IsLastPrice

RESIDENT dataset

GROUP BY Product;

andrea90casa
Creator
Creator
Author

Perfect, Thank you very much