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

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
Daniel_de_Wet
Contributor II
Contributor II

Split Field into Multiple Records/lines

Hi, 

I need some help in solving this problem when loading my data. 

I data that looks like this :

PAT_ID DIAGNOSI
100/17 DIPENDENZA DA COCAINA (13/03/2017)
DIPENDENZA DA OPPIOIDI (13/03/2017)
100/22 DIPENDENZA DA OPPIOIDI (03/05/2022)
100/21 Non sono soddisfatti i criteri diagnostici ICD-9/CM per dipendenze e/o abuso di sostanze
100/01 ABUSO DI ALCOL (10/06/2014)
ABUSO DI ALCOL, IN REMISSIONE (27/05/2016)
ABUSO DI CANNABINOIDI (10/06/2014)
ABUSO DI CANNABINOIDI (21/02/2019)
ABUSO DI CANNABINOIDI, IN REMISSIONE (06/10/2021)
ABUSO DI CANNABINOIDI, IN REMISSIONE (29/01/2016)
ABUSO DI COCAINA (06/02/2019)
ABUSO DI COCAINA (10/06/2014)
ABUSO DI COCAINA (21/02/2013)
ABUSO DI COCAINA (21/02/2017)
ABUSO DI COCAINA (21/02/2019)
ABUSO DI COCAINA, IN REMISSIONE (06/10/2021)
ABUSO DI COCAINA, IN REMISSIONE (29/01/2016)
DIPENDENZA DA OPPIOIDI (21/02/2013)
DIPENDENZA DA OPPIOIDI (30/11/2001)
DIPENDENZA DA OPPIOIDI, IN REMISSIONE (10/06/2014)
DIPENDENZA DA OPPIOIDI, IN REMISSIONE (21/02/2017)
DIPENDENZA DA OPPIOIDI, IN REMISSIONE (27/05/2016)
100/19 ABUSO DI COCAINA (02/05/2019)
ABUSO DI COCAINA, IN REMISSIONE (20/04/2020)
DIPENDENZA DA CANNABINOIDI (02/05/2019)
DIPENDENZA DA CANNABINOIDI, IN REMISSIONE (20/04/2020)
100/20 Non sono soddisfatti i criteri diagnostici ICD-9/CM per dipendenze e/o abuso di sostanze
101/20 ABUSO DI COCAINA, IN REMISSIONE (24/06/2020)
101/18 DIPENDENZA DA CANNABINOIDI (19/03/2018)
DIPENDENZA DA COCAINA (19/03/2018)

 

I need it to look like this: 

PAT_ID DIAGNOSI DIAG_DATE
100/17 DIPENDENZA DA COCAINA  13/03/2017
100/17 DIPENDENZA DA OPPIOIDI  13/03/2017
100/22 DIPENDENZA DA OPPIOIDI  03/05/2022
100/21 Non sono soddisfatti i criteri diagnostici ICD-9/CM per dipendenze e/o abuso di sostanze
100/01 ABUSO DI ALCOL  10/06/2014
100/01 ABUSO DI ALCOL, IN REMISSIONE 27/05/2016
100/01 ABUSO DI CANNABINOIDI 10/06/2014
100/01 ABUSO DI CANNABINOIDI 21/02/2019
100/01 ABUSO DI CANNABINOIDI, IN REMISSIONE 06/10/2021
100/01 ABUSO DI CANNABINOIDI, IN REMISSIONE  29/01/2016
100/01 ABUSO DI COCAINA 06/02/2019
100/01 ABUSO DI COCAINA 10/06/2014
100/01 ABUSO DI COCAINA 21/02/2013
100/01 ABUSO DI COCAINA  21/02/2017
100/01 ABUSO DI COCAINA 21/02/2019
100/01 ABUSO DI COCAINA, IN REMISSIONE 06/10/2021
100/01 ABUSO DI COCAINA, IN REMISSIONE 29/01/2016
100/01 DIPENDENZA DA OPPIOIDI  21/02/2013
100/01 DIPENDENZA DA OPPIOIDI 30/11/2001
100/01 DIPENDENZA DA OPPIOIDI, IN REMISSIONE 10/06/2014
100/01 DIPENDENZA DA OPPIOIDI, IN REMISSIONE 21/02/2017
100/01 DIPENDENZA DA OPPIOIDI, IN REMISSIONE 27/05/2016
100/19 ABUSO DI COCAINA  02/05/2019
100/19 ABUSO DI COCAINA, IN REMISSIONE  20/04/2020
100/19 DIPENDENZA DA CANNABINOIDI  02/05/2019
100/19 DIPENDENZA DA CANNABINOIDI, IN REMISSIONE 20/04/2020
100/20 Non sono soddisfatti i criteri diagnostici ICD-9/CM per dipendenze e/o abuso di sostanze
101/20 ABUSO DI COCAINA, IN REMISSIONE  24/06/2020
101/18 DIPENDENZA DA CANNABINOIDI  19/03/2018
101/18 DIPENDENZA DA COCAINA 19/03/2018

 

I can't figure this one out. Hopefully, one of you can get me there.

Thanks

PS I attach the ile in excel format. 

Labels (2)
1 Solution

Accepted Solutions
MarcoWedel

another similar example:

 

MarcoWedel_1-1655330981563.png

 

table1:
LOAD PAT_ID,
           If(str like '* (??/??/????)', Left(str,Len(str)-13), str) as DIAGNOSI,
           If(str like '* (??/??/????)', Date#(TextBetween(str,'(',')'),'DD/MM/YYYY')) as DIAG_DATE;
LOAD PAT_ID,
          SubField(DIAGNOSI,Chr(10)) as str
FROM [https://community.qlik.com/cyjdu72974/attachments/cyjdu72974/qlikview-app-development/1219481/1/Exam...] (ooxml, embedded labels, table is Foglio1);

 

 

View solution in original post

8 Replies
lironbaram
Partner - Master III
Partner - Master III

Hi 
your load script should look like this:

LOAD
	[PAT_ID] ,
	subfield([DIAGNOSI],chr(10)) AS [DIAGNOSI]
 FROM [lib://Downloads/Example_DIAG.xlsx]
(ooxml, embedded labels, table is Foglio1);
Daniel_de_Wet
Contributor II
Contributor II
Author

Thanks !! This helps alot. Do you have any suggestions to create the date field?

Anonymous
Not applicable

I would recommend this script...

LOAD
PAT_ID,
subfield([DIAGNOSI],chr(10),iterno()) AS [DIAGNOSI],
Date#(TextBetween(subfield([DIAGNOSI],chr(10),iterno()),'(',')'),'D/M/YYYY') as Date
FROM
[C:\Users\XXX\Documents\QlikView\Community Help\Example_DIAG.xlsx]
(ooxml, embedded labels, table is Foglio1)
While Iterno() <= SubStringCount([DIAGNOSI],chr(10)) + 1
And Len(subfield([DIAGNOSI],chr(10),iterno())) >0;

HTH,

John

(aka johncaqc)

MarcoWedel

another similar example:

 

MarcoWedel_1-1655330981563.png

 

table1:
LOAD PAT_ID,
           If(str like '* (??/??/????)', Left(str,Len(str)-13), str) as DIAGNOSI,
           If(str like '* (??/??/????)', Date#(TextBetween(str,'(',')'),'DD/MM/YYYY')) as DIAG_DATE;
LOAD PAT_ID,
          SubField(DIAGNOSI,Chr(10)) as str
FROM [https://community.qlik.com/cyjdu72974/attachments/cyjdu72974/qlikview-app-development/1219481/1/Exam...] (ooxml, embedded labels, table is Foglio1);

 

 

Daniel_de_Wet
Contributor II
Contributor II
Author

Thanks John!!!

This is a valid solution, works great!

 

Daniel_de_Wet
Contributor II
Contributor II
Author

Thanks Marco!!!!

Anonymous
Not applicable

Interesting alternative, Marco. I wonder what the difference in load times each of our solutions would be. Given such a small dataset...

My solution was actually provided to me several years ago by some else in this community for a similar project I once had.

Anonymous
Not applicable

Hi Marco, I tried sending you a private message but it seems I cannot. I was wondering how you determine the link to forum attachments so they don't need to be downloaded first.

Regards,

JohnInSD

(aka johncaqc)