Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi Team,
After all my data modelling I have data that looks like below. Every Item for specific month will show downtime. I would like to generate the missing months for every Item with 0 value .
Final Result got:
Item | Red | Blue | Green | Yellow |
July 2022 | 9.22 | 0.43 | ||
Aug 2022 | 0.33 | |||
Sep 2022 | 1.22 | |||
October 2022 | 6 | |||
Nov 2022 | 4.5 | |||
Dec 2022 | ||||
January 2023 | 1 | |||
Feb 2023 |
Result expected :
Item | Red | Blue | Green | Yellow |
Jul 2022 | 0 | 0 | 9.22 | 0.43 |
Aug 2022 | 0.33 | 0 | 0 | 0 |
Sep 2022 | 0 | 1.22 | 0 | 0 |
Oct 2022 | 0 | 0 | 0 | 6 |
Nov 2022 | 4.5 | 0 | 0 | 0 |
Dec 2022 | 0 | 0 | 0 | 0 |
Jan 2023 | 0 | 0 | 1 | 0 |
Feb 2023 | 0 | 0 | 0 | 0 |
Any help would be appreciated. Thank you.
you can use number formatting for achieve the same.
Hello,
It does not work in Qliksense. Does it ?
In QlikSense, you can generate missing months with zero value in the script using a combination of the Calendar
function and Left Join
. Here's an example script that generates missing months with zero value:
// Generate a calendar table with all dates from min and max date in your data
Calendar:
Load
Date($(vMinDate) + IterNo() - 1) as Date
While $(vMinDate) + IterNo() - 1 <= $(vMaxDate);
// Load your data table
YourData:
Load
Date,
Value
From YourDataSource;
// Join the data table with the calendar table to get all dates, including missing ones
Left Join (YourData)
Load
Date
Resident Calendar;
// Replace all NULL values with 0 to indicate missing months
YourData_Final:
Load
Date,
If(IsNull(Value), 0, Value) as Value
Resident YourData;
Calendar
table using the Calendar
function, which creates a table with all dates between the minimum and maximum dates in your data. We then load your data into a table called YourData
.Next, we perform a Left Join
to combine the Calendar
table with the YourData
table, which will add missing dates to the YourData
table with null values.
Finally, we create a new table called YourData_Final
, where we replace all NULL
values with 0 using the IsNull
and If
functions.
By using this script, you can generate a table that includes all months, including the ones with zero value, which is useful for creating visualizations and analyzing trends over time.
starting data:
then try this:
NoConcatenate
newData:
load Item,
if(isnull(Red),0,Red) as Red,
if(isnull(Blue),0,Blue) as Blue,
if(isnull(Green),0,Green) as Green,
if(isnull(Yellow),0,Yellow) as Yellow
resident data;
drop table data;
@hitha1512 Please see the code below:
NoConcatenate
Temp:
Load left(SubField(Item,' ',1),3) as Month,
SubField(Item,' ',2) as Year,
Red,
Blue,
Green,
Yellow
inline [
Item, Red, Blue, Green, Yellow
July 2022,, 9.22, 0.43,
Aug 2022, 0.33,,,
Sep 2022, ,1.22,,
October 2022,,,, 6
Nov 2022, 4.5,,,
Dec 2022,
January 2023,,, 1,
Feb 2023,,,,
];
NoConcatenate
Temp1:
load Month&' '&Year as Item,
if(isnull(emptyisnull(Red)),0,Red) as Red,
if(isnull(emptyisnull(Blue)),0,Blue) as Blue,
if(isnull(emptyisnull(Green)),0,Green) as Green,
if(isnull(emptyisnull(Yellow)),0,Yellow) as Yellow
Resident Temp;
Drop table Temp;
Exit Script;
If this resolves your issue, please like and accept as a solution