Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
chaitanyajami
Partner - Creator
Partner - Creator

Derive month column from data

Hi All,

I have excel data with month wise demand and actual hours as separate columns , however i need to have bar chart with Month wise details of demand and actual hours, please suggest how to derive month column with below.doubt.PNG 

1 Solution

Accepted Solutions
YoussefBelloum
Champion
Champion

Hi,

as described above, you can use CROSSTABLE to transform your columns to line

but i don't know why CROSSTABLE don't work here when because there is no qualifier column before your first column.

so I added a first column on the table you gave me, called dimension1, with 1 as value:

and try this:

cross:

CrossTable(dimension2, Data)

LOAD dimension1,

    [January-Hrs Demand] as 1,

    [January-Hrs Actuals] as 1,

    [February-Hrs Demand] as 2,

    [February-Hrs Actuals] as 2,

    [March-Hrs Demand] as 3,

    [March-Hrs Actuals] as 3,

    [April-Hrs Demand] as 4,

    [April-Hrs Actuals] as 4,

    [May-Hrs Demand] as 5,

    [May-Hrs Actuals] as 5,

    [June-Hrs Demand] as 6,

    [June-Hrs Actuals] as 6,

    [July-Hrs Demand] as 7,

    [July-Hrs Actuals] as 7,

    [August-Hrs Demand] as 8,

    [August-Hrs Actuals] as 8,

    [September-Hrs Demand] as 9,

    [September-Hrs Actuals] as 9,

    [October-Hrs Demand] as 10,

    [October-Hrs Actuals] as 10,

    [November-Hrs Demand] as 11,

    [November-Hrs Actuals] as 11,

    [December-Hrs Demand] as 12,

    [December-Hrs Actuals] as 12

FROM

(ooxml, embedded labels, table is Feuil1);

cross2:

LOAD dimension1,date(Date#(dimension2,'M'),'M') as Month, Data

Resident cross;

DROP Field dimension1 From cross2;

DROP Table cross;

you data will be like this:

cross_screenshot.png

and your barchart like this:

barchart_cross.png

View solution in original post

9 Replies
YoussefBelloum
Champion
Champion

Hi,

can you attach some rows of your data (in the same structure) on excel for example ?

you will have to use CROSSTABLE when you load your table

Chanty4u
MVP
MVP

in values you have only for hours right?

try with subfield function to get month and hour as seperate columns

SubField(Field, '-',1) as month,

chaitanyajami
Partner - Creator
Partner - Creator
Author

Hi,

Please find below, could you please assist how to do the cross tab , im unable to get my output                       

January-Hrs DemandJanuary-Hrs ActualsFebruary-Hrs DemandFebruary-Hrs ActualsMarch-Hrs DemandMarch-Hrs ActualsApril-Hrs DemandApril-Hrs ActualsMay-Hrs DemandMay-Hrs ActualsJune-Hrs DemandJune-Hrs ActualsJuly-Hrs DemandJuly-Hrs ActualsAugust-Hrs DemandAugust-Hrs ActualsSeptember-Hrs DemandSeptember-Hrs ActualsOctober-Hrs DemandOctober-Hrs ActualsNovember-Hrs DemandNovember-Hrs ActualsDecember-Hrs DemandDecember-Hrs Actuals
81.0081.0052.0063.00179.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.00
0.000.0010.676.5020.000.0020.000.0010.000.0020.000.0010.000.0020.000.000.000.000.000.000.000.000.000.00
0.0059.000.0037.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.00
10.0010.0025.4412.008.560.0030.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.00
13.009.0017.3915.007.610.0020.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.00
8.008.002.002.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.00
Chanty4u
MVP
MVP

what is the exact requirement?   from hours i dont think so you will get month?

chaitanyajami
Partner - Creator
Partner - Creator
Author

Hi,

Need Month column from above with values as Jan,Feb ....Dec to show them in Barchart as dimension with two bars as Demand hours and Actual hours.

Chanty4u
MVP
MVP

Okay . But if there is no related values for month in your data right?

in general we cant get month from  Hours field AFAIk.

Yousuf have some idea let see.

YoussefBelloum
Champion
Champion

Hi,

as described above, you can use CROSSTABLE to transform your columns to line

but i don't know why CROSSTABLE don't work here when because there is no qualifier column before your first column.

so I added a first column on the table you gave me, called dimension1, with 1 as value:

and try this:

cross:

CrossTable(dimension2, Data)

LOAD dimension1,

    [January-Hrs Demand] as 1,

    [January-Hrs Actuals] as 1,

    [February-Hrs Demand] as 2,

    [February-Hrs Actuals] as 2,

    [March-Hrs Demand] as 3,

    [March-Hrs Actuals] as 3,

    [April-Hrs Demand] as 4,

    [April-Hrs Actuals] as 4,

    [May-Hrs Demand] as 5,

    [May-Hrs Actuals] as 5,

    [June-Hrs Demand] as 6,

    [June-Hrs Actuals] as 6,

    [July-Hrs Demand] as 7,

    [July-Hrs Actuals] as 7,

    [August-Hrs Demand] as 8,

    [August-Hrs Actuals] as 8,

    [September-Hrs Demand] as 9,

    [September-Hrs Actuals] as 9,

    [October-Hrs Demand] as 10,

    [October-Hrs Actuals] as 10,

    [November-Hrs Demand] as 11,

    [November-Hrs Actuals] as 11,

    [December-Hrs Demand] as 12,

    [December-Hrs Actuals] as 12

FROM

(ooxml, embedded labels, table is Feuil1);

cross2:

LOAD dimension1,date(Date#(dimension2,'M'),'M') as Month, Data

Resident cross;

DROP Field dimension1 From cross2;

DROP Table cross;

you data will be like this:

cross_screenshot.png

and your barchart like this:

barchart_cross.png

chaitanyajami
Partner - Creator
Partner - Creator
Author

Thank you so much, its working as you suggested

YoussefBelloum
Champion
Champion

you're welcome!

Good luck