Free Trial

Foro

RESUELTAS

Extraer dato que esta dentro de una celda

And_avella96
Meteoroide

Buenas tardes comunidad,

 

Solicito su ayuda, debido a que necesito extraer la identificación de los clientes que esta dentro de un conjunto de datos adicionales como se muestra en el siguiente ejemplo:

 

celda 1 ejemplo:

no,acceptcredifamilia,no entiendo los documentos,documentproblems,tengo dificultades con los documentos,documentstatus,no,hascredit,no,hashousing,sa­,hassavings,no,hassubsidy,1900000,householdincome,30000000,housingsubsidy,1013591040,identification,ca©dula de ciudadana­a,identificationtype,duea±o de negocio,laboralactivity,soltero/a,maritalstate,18170520,micasayasubsidy,2000000,monthlyincome,daniel quintero,name,independiente,occupation,0,othersavings,107257776,potentialcredit,5000000,severancesavings,05,startedactivitymonth,2018,startedactivityyear,sa­,wantpersonalityroute,solo,withrelatives,si,creditcounseling

 

celda 2 ejemplo:

1117000,householdincome,1127946335,identification,ca©dula de ciudadana­a,identificationtype

 

Todos esos datos vienen en una sola celda y no todas las celdas contienen la misma cantidad de datos, por lo que necesito extraer el numero anterior a la palabra identification. 

 

Agradezco su ayuda y de antemano muchas gracias 

 

Saludos 

8 RESPUESTAS 8
Aguisande
15 - Aurora
15 - Aurora

Hola @And_avella96 

 

Creo que con un REGEX configurado de esta forma te puede funcionar:

(\d{0,10}),identification,  

En Output Method=Parse

Aguisande_0-1658879025582.png

Estoy asumiendo que siempre son números, que pueden tener una longitud entre 0 y 10 dígitos y que siempre hay un ,identification, a continuación.

Si esto varía, habría que variar la expresión regular.

And_avella96
Meteoroide

Se puede agregar un parámetro para que tome los datos que estén antes de una (coma) (,)? 

Aguisande
15 - Aurora
15 - Aurora

No te estoy entendiendo a qué te refieres, me puedes contar más?

And_avella96
Meteoroide

Hola!!

 

quiero decir que si quiero traer datos hasta la coma (,) anterior a identification como en el ejemplo acontinuacion:

 

formstatus,sa­,hascredit,no,hashousing,sa­,hassavings,no,hassubsidy,1800000,householdincome,30000000,housingsubsidy,1070607909,identification,ca©dula de ciudadana­a,identificationtype,11,joinedcompanymonth,2020,joinedcompanyyear,ta©rmino indefinido,laboralcontracted,soltero/a,maritalstate,18170520,micasayasubsidy,1800000,monthlyincome,fna,namefinancialentity,empleado,occupation,3000000,othersavings,61555000,potentialcredit,3029000,severancesavings,sa­,wantpersonalityroute,no,wanttoseemoreprojects,no,wanttostartasaving,solo,withrelatives,sa­,youalreadychoseproject,sa­,youcouldgetthatvalue

 

Adicional tambien queria agregar a la respuesta, como puedo hacer parar traer varios datos, trate de hacer una expresion pero no me trae ninguno de los datos:

 

(\d{0,9}),householdIncome\s(\w{0,35}),identificationType\s(\d{0,10}),identification\s(\w{0,2}),hasHousing\s(\w{0,11}),maritalState\s(\w{0,30}),occupation

 

Esto con el fin de crear columnas diferentes con cada uno de los datos que tiene esa celda.

 

Quedo atento 

 

Saludos 

 

Aguisande
15 - Aurora
15 - Aurora

Para este caso, yo lo que haría es utilizar un Text To column, usando ","como separador, y configurando "Split to Rows"

 

Aguisande_0-1658939728926.png

 

De esta forma, vas a poder tomar decisiones más fácil de qué conservar y qué no.

Aguisande_1-1658939779449.png

 

 

 

And_avella96
Meteoroide

El problema que tengo en utilizar texto en columnas es que no todas las celdas traen los mismos datos ni con el mismo orden, con Regex no se puede?

 

estuve viendo un ejemplo, en donde separaban de un campo en una misma expresión y quiero hacer esto mismo, debido a que hay celdas que vienen mas completas con información y algunas otras con solo la identificacion.

And_avella96_0-1658940197271.png

 

Aguisande
15 - Aurora
15 - Aurora

Si se puede, si en realidad los registros son tan "variados" lo mejor es utilizar ReGEx

Lo que hay que hacer es construir la expresión de modo que te permita ir extrayendo lo que necesitas.

Para armar las expresiones, tal vez te conviene utilizar https://regex101.com/

Incluso, tal vez no intentar hacer todas las extracciones de una vez, sino ir "atancando" grupos de información a través de utilizar mútliples herramientas ReGEx. 

And_avella96
Meteoroide

Muchisimas Gracias por la solución fue muy útil!!!! 

Etiquetas