# Qlik Sense App Development

Announcements
Qlik Analytics Tour 2020 Online. Begins August 10th. Register Today
cancel
Showing results for
Did you mean:
Highlighted
Contributor III

## Separating area code from phone number into new field

Hi everyone,

I'm trying to clean phone numbers by doing two things:

• Removing anything that's not a number from the Phone number column - no problem I used this code:

purgechar([Phone number], ')(-') as [Phone number]

• Problem is, when the area code is in the Phone number column (like row 2), I want to remove it and add it to the Area code column (or into any other new field). This is where I'm stuck, I've tried various iterations of if(len, substring, purgechar and just can't get this to work.

Any help appreciated, as always. Thanks!

R.

Area codePhone number
14161234567
24161234567
3(416)1234567
1 Solution

Accepted Solutions
Highlighted
MVP

Sample script

Table:

If(Len(Purgechar([Phone number], ')(-')) = 10, Right(Purgechar([Phone number], ')(-'), 7), Purgechar([Phone number], ')(-')) as [Phone number],

If(Len(Trim([Area code])) > 0, [Area code], If(Len(Purgechar([Phone number], ')(-')) = 10, Left(Purgechar([Phone number], ')(-'), 3))) as [Area code];

Sno, Area code, Phone number

1, 416, 1234567

2, , 4161234567

3, , (416)1234567

];

8 Replies
Highlighted
MVP

Which is your actual data row.

Highlighted
MVP

In row no 2 how you differentiate 416 is the code and 1234567 is the phone number.

Highlighted
MVP

May be like this

If(Len(Purgechar([Phone number], ')(-')) = 10, Right(Purgechar([Phone number], ')(-'), 7), Purgechar([Phone number], ')(-')) as [Phone number]

Highlighted
MVP

And this for Area Code...

If(Len(Trim([Area Code])) > 0, [Area Code], If(Len(Purgechar([Phone number], ')(-')) = 10, Left(Purgechar([Phone number], ')(-'), 3))) as [Area Code]

Highlighted
MVP

Sample script

Table:

If(Len(Purgechar([Phone number], ')(-')) = 10, Right(Purgechar([Phone number], ')(-'), 7), Purgechar([Phone number], ')(-')) as [Phone number],

If(Len(Trim([Area code])) > 0, [Area code], If(Len(Purgechar([Phone number], ')(-')) = 10, Left(Purgechar([Phone number], ')(-'), 3))) as [Area code];

Sno, Area code, Phone number

1, 416, 1234567

2, , 4161234567

3, , (416)1234567

];

Highlighted
MVP

Some of the questions

1. What is the length of the Phone no. are they fix.

2. Open brackets close and open are in fix place

PurgeChar( SubField([Phone number],')',1),'(') as [Area Code],

SubField([Phone number],')',-1) as [New Phone];

[

Area code, Phone number

1 ,  416 1234567

2 ,  4161234567

3 , (416)1234567

];

Highlighted
MVP

If they are in fix Area Code = 3 and Number = 7

Then

Data:

PurgeChar( SubField([Phone number],')',1),'(') as [Area Code],

SubField([Phone number],')',-1) as [New Phone];

[

Area code, Phone number

1 ,  416 1234567

2 , 4161234567

3 , (416)1234567

];

NoConcatenate

Final:

If(len([Area Code]) = 3, [Area Code]) as [Area Code],

if(len([New Phone]) = 7,[New Phone]) as [New Phone]

Resident Data;

DROP Table Data;

Highlighted
Contributor III

Apologies for the extreme delay on replying to this, but this code works perfect. Thanks so much!

R.