Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
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-