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

Announcements
Join us in Bucharest on Sept 18th for Qlik's AI Reality Tour! Register Now
cancel
Showing results for 
Search instead for 
Did you mean: 
shekhar_analyti
Specialist
Specialist

How to replicate data over dimension values ?

Hi All ,

I want to replicate data row which is having Max value in a particular field with all distinct Dimension values in reach row .

 

Data

LOAD * INLINE [

Company, Year , Qtr, YQ_Num, Date, Area, Performance, Field1, Field2, Field3, Field4, Field5, Field6
Metallica, 2017, Q2, 20172, , A, 5, XXXXXY, XXXXXY, XXXXXY, XXXXXY, XXXXXY, XXXXXY
Metallica, 2017, Q1, 20171, , B, 6, XXXXXY, XXXXXY, XXXXXY, XXXXXY, XXXXXY, XXXXXY
Intel, 2016, Q2, 20162, , C, 2, XXXXXY, XXXXXY, XXXXXY, XXXXXY, XXXXXY, XXXXXY
Intel, 2015, Q4, 20154, , D, 7, XXXXXY, XXXXXY, XXXXXY, XXXXXY, XXXXXY, XXXXXY
Peter ENGLAND, 2017, Q4, 20174, , C, 1, XXXXXY, XXXXXY, XXXXXY, XXXXXY, XXXXXY, XXXXXY
Peter PUNJAB, 2014, Q2, 20142, , A, 6, XXXXXY, XXXXXY, XXXXXY, XXXXXY, XXXXXY, XXXXXY
Peter PUNJAB, 2013, Q1, 20131, , M, 5, XXXXXY, XXXXXY, XXXXXY, XXXXXY, XXXXXY, XXXXXY
Peter PUNJAB, 2014, Q2, 20143, , B, 5, XXXXXY, XXXXXY, XXXXXY, XXXXXY, XXXXXY, XXXXXY
];

Thanks & Regards

Shekar

Labels (1)
1 Solution

Accepted Solutions
sunny_talwar

Try these expressions for Regions

Only({<Area={'A'}>}Aggr(If(YQ_Num = Max(TOTAL <Company> YQ_Num), Performance), Company, YQ_Num))

Only({<Area={'B'}>}Aggr(If(YQ_Num = Max(TOTAL <Company> YQ_Num), Performance), Company, YQ_Num))

Only({<Area={'C'}>}Aggr(If(YQ_Num = Max(TOTAL <Company> YQ_Num), Performance), Company, YQ_Num))

Only({<Area={'D'}>}Aggr(If(YQ_Num = Max(TOTAL <Company> YQ_Num), Performance), Company, YQ_Num))

Only({<Area={'M'}>}Aggr(If(YQ_Num = Max(TOTAL <Company> YQ_Num), Performance), Company, YQ_Num))

image.png

View solution in original post

10 Replies
shekhar_analyti
Specialist
Specialist
Author

All.png

Above is expected output 

shekhar_analyti
Specialist
Specialist
Author

Sample

shekhar_analyti
Specialist
Specialist
Author

@sunny_talwar

 

Sunny Bhai .  Please have a look  .

sunny_talwar

Before I give any suggestion, can you share what have you tried so far? 

shekhar_analyti
Specialist
Specialist
Author

Hi Sunny Bhai ,

Thanks for the reply . 

My actual problem was something else with the same data . In order to solve that problem i thought of replicating data through list of dimension values , About which i really have no idea how to do .

Let me explain 

Data 

LOAD * INLINE [

Company, Year , Qtr, YQ_Num, Date, Area, Performance
Metallica, 2017, Q2, 20172, , A, 5
Metallica, 2017, Q1, 20171, , B, 6
Intel, 2016, Q2, 20162, , C, 2
Intel, 2015, Q4, 20154, , D, 7
Peter ENGLAND, 2017, Q4, 20174, , C, 1
Peter PUNJAB, 2014, Q2, 20142, , A, 6
Peter PUNJAB, 2013, Q1, 20131, , M, 5
Peter PUNJAB, 2014, Q2, 20143, , B, 5
];

Chart 
Dimension - Company 
Exp1 - Max(YQ_Num)
Exp 2 - FirstSortedValue({<Area={'A'}>}Performance,-aggr(Max(YQ_Num),Company,YQ_Num))
Exp 3 - FirstSortedValue({<Area={'D'}>}Performance,-aggr(Max(YQ_Num),Company,YQ_Num))
Exp 4 - FirstSortedValue({<Area={'B'}>}Performance,-aggr(Max(YQ_Num),Company,YQ_Num))

Output which i am getting is 

CompanyMax YQ FOR COMPANYREGION AREGION BREGION CREGION DREGION M
Intel20162--27-
Metallica2017256---
Peter ENGLAND20174--1--
Peter PUNJAB2014365--5


But Output is needed was 

CompanyMax YQ FOR COMPANYREGION AREGION BREGION CREGION DREGION M
Intel20162--2--
Metallica201725----
Peter ENGLAND20174--1--
Peter PUNJAB20143-5---

 

So i thought that if i take Max YQ_Num from company and replicate the data through Dimension , above expression will work fine and it will be a new learning for me 

sunny_talwar

Try these expressions for Regions

Only({<Area={'A'}>}Aggr(If(YQ_Num = Max(TOTAL <Company> YQ_Num), Performance), Company, YQ_Num))

Only({<Area={'B'}>}Aggr(If(YQ_Num = Max(TOTAL <Company> YQ_Num), Performance), Company, YQ_Num))

Only({<Area={'C'}>}Aggr(If(YQ_Num = Max(TOTAL <Company> YQ_Num), Performance), Company, YQ_Num))

Only({<Area={'D'}>}Aggr(If(YQ_Num = Max(TOTAL <Company> YQ_Num), Performance), Company, YQ_Num))

Only({<Area={'M'}>}Aggr(If(YQ_Num = Max(TOTAL <Company> YQ_Num), Performance), Company, YQ_Num))

image.png

shekhar_analyti
Specialist
Specialist
Author

Thank You Sunny Bhai ...
But please also tell me way to to replicate data over dimension values .. It will be a new learning for me .. Please .

Regards
Shekar
sunny_talwar


@shekhar_analyti wrote:
But please also tell me way to to replicate data over dimension values ..

I am not sure I understand what this even means? Replicate data over dimension values? Can you elaborate?

shekhar_analyti
Specialist
Specialist
Author

Sorry for confusion , i was referring to get following output using script (replicate data over dimension values) .. NOT EXPRESSIONS .
Input

CompanyYear QtrYQ_NumDateAreaPerformance
Metallica2017Q220172 A5
Metallica2017Q120171 B6
Intel2016Q220162 C2
Intel2015Q420154 D7
Peter ENGLAND2017Q420174 C1
Peter PUNJAB2014Q220142 A6
Peter PUNJAB2013Q120131 M5
Peter PUNJAB2014Q220143 B5

 Output 

CompanyYear QtrYQ_NumDateAreaPerformance
Metallica2017Q220172 A5
Metallica2017Q120172 B-
Metallica2017Q220172 C-
Metallica2017Q220172 D-
Metallica2017Q220172 M-
Intel2016Q220162 A-
Intel2016Q220162 B-
Intel2016Q220162 C2
Intel2015Q420162 D-
Intel2016Q220162 M-
Peter ENGLAND2017Q420174 A-
Peter ENGLAND2017Q420174 B-
Peter ENGLAND2017Q420174 C1
Peter ENGLAND2017Q420174 D-
Peter ENGLAND2017Q420174 M-
Peter PUNJAB2014Q220143 A-
Peter PUNJAB2014Q220143 B5
Peter PUNJAB2014Q220143 C-
Peter PUNJAB2014Q220143 D-
Peter PUNJAB2014Q220143 M-