Advent of Code is back! Unwrap daily challenges to sharpen your Alteryx skills and earn badges along the way! Learn more now.
Free Trial

Alteryx Designer Desktop Discussions

Find answers, ask questions, and share expertise about Alteryx Designer Desktop and Intelligence Suite.
SOLVED

Using RegEx to extract part of a string based on another field value

ansonwun
8 - Asteroid

Hi, I'd like to extract part of a string based on the value of a field value but got stuck with RegEx. My data is like this: the "Name" column lists out all the individual's name, but it may not be unique. The "Position" column lists the name and position of everyone - so it's the same every row.

 

NamePosition
Doe, J.Doe, J., Manager, Operations; Tan, T., Director; West, P.Y., Clerk, Sales; HQ; Stan, A., Sales, Global; Doe, J., Intern, HQ
Tan, T.Doe, J., Manager, Operations; Tan, T., Director; West, P.Y., Clerk, Sales; HQ; Stan, A., Sales, Global; Doe, J., Intern, HQ
West, P.Y.Doe, J., Manager, Operations; Tan, T., Director; West, P.Y., Clerk, Sales; HQ; Stan, A., Sales, Global; Doe, J., Intern, HQ
Stan, A.Doe, J., Manager, Operations; Tan, T., Director; West, P.Y., Clerk, Sales; HQ; Stan, A., Sales, Global; Doe, J., Intern, HQ
Doe, J.Doe, J., Manager, Operations; Tan, T., Director; West, P.Y., Clerk, Sales; HQ; Stan, A., Sales, Global; Doe, J., Intern, HQ

 

What I wanted to do is get this result:

NamePosition
Doe, J.Doe, J., Manager, Operations
Tan, T.Tan, T., Director
West, P.Y.West, P.Y., Clerk, Sales; HQ
Stan, A.Stan, A., Sales, Global
Doe, J.Doe, J., Intern, HQ

 

So far I've only used RegEx with some actual values instead of referring to a field combined with RegEx syntax so I'm not quite sure how to approach this. 2 other complications is that Names could be the same but Position can be different (e.g. 1st vs last row are actually 2 different persons), and there will be user input error putting the delimiter at the wrong place (e.g. the 3rd row, "Sales; HQ" instead of "Sales, HQ")

 

Thanks in advance!

2 REPLIES 2
BenMoss
ACE Emeritus
ACE Emeritus

This gets complex primarily because of the ; HQ; error.

 

I've built a rule that splits the data to rows on the ; delimiter. Then used the multi row formula tool to pull up the data from the following line if there is no comma within it.

 

See the attached solution.

Ben

ansonwun
8 - Asteroid

Thanks @BenMoss 

Inspired by your solution I've replaced every ": " + [Name] pattern with a delimiter other than ";" so that will take care of that unexpected delimiter inside the string and got what I was looking for.

Labels
Top Solution Authors