Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Next up in the FabCon + SQLCon recap series: The roadmap for Microsoft SQL and Maximizing Developer experiences in Fabric. All sessions are available on-demand after the live show. Register now

Reply
Syndicate_Admin
Administrator
Administrator

Extracción de texto complicada en Power Query

Hola

Tengo una cadena de datos [Latest Financials] que se ve así:

{'vat': ['20.00', '85.00.'. 26'], 'participación': {'precio': '426,31', 'num_parties': 4}, 'total': '511,57', 'subtotal': '1705,24', 'drug_test_fees': ['646,00', [['Prueba de mechón de cabello x4 secciones (3 cuero cabelludo, 1 cuerpo)', ['Cannabis', 'Cocaína', 'Opiáceos', 'Anfetamina', 'MDMA (Éxtasis)'], '646.00']]], 'collection_info': [[Ninguno, '145.00']], 'expert_drug_fee': '131.25', 'expert_drug_rate': '105.00', 'alcohol_test_fees': ['670.99', [['Análisis de sangre', ['CDT'], '95.00'], ['Prueba de hebra de cabello x2 secciones (1 cuero cabelludo, 1 cuerpo)», [«FAEE»], «250,99»], [«Ensayo de mechones capilares x2 secciones (1 cuero cabelludo, 1 cuerpo)», [«EtG»], «325,00»]]], «expert_alcohol_fee»: «112,00», «expert_alcohol_rate»: «105,00», «expert_drug_minutes»: 75, «subtotal_expert_fee»: «243,25», «expert_alcohol_minutes»: 64, «collection_info_subtotal»: «145,00», «expert_tests_drugs_subtotal»: «777,25», «expert_tests_alcohol_subtotal»: «782,99»}

Necesito extraer el 646 que aparece después del bit drug_test_fees y varios otros números similares más adelante. Sé cómo hacer esto en DAX pero no en Power Query . Algunas filas no tienen entrada para las tarifas de las pruebas de drogas y puede estar en varias posiciones en la cadena, por lo que debe hacerse mediante coincidencia de texto.

Llegué hasta aquí para que funcione, pero el 646 podría tener 4, 5 o 6 dígitos de largo, por lo que sería posible que fuera variable. Esencialmente, necesito calcular cuántos caracteres hay entre [ y , alrededor de ese número. En DAX, buscaría la primera coma después de la drug_test_fees, pero no puede averiguar cómo Text.PositionOf a partir de drug_test_fees?

= Table.AddColumn(#"Removed Other Columns", "Drug Test Fee", each if Text.PositionOf([Latest Financials],"drug_test_fees")>0 then Text.Range([Latest Financials],Text.PositionOf([Latest Financials],"drug_test_fees")+18,6) else null)

Además, este texto está en un archivo CSV y cuando lo introduzco en Power Query, se ve ligeramente diferente en que el ['646' ahora es [646.

{'IVA': [20.0, 74.51], 'participación': {'precio': 372.56, 'num_parties': 4}, 'total': 447.07, 'subtotal': 1490.25, 'drug_test_fees': [646.0,

Tal vez haya una manera más fácil de hacer esto.

Agradezco cualquier consejo

Micrófono

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

@masplin < Intente usar este código m en la columna personalizada

= Table.AddColumn(#"PreviousStepName", "Tarifa de prueba de drogas", cada uno
dejar
sourceText = [Últimos datos financieros],
startPos = Text.PositionOf(sourceText, "drug_test_fees"),
afterKey = Text.Middle(sourceText, startPos + Text.Length("drug_test_fees") + 4),
feeText = Text.BeforeDelimiter(afterKey, ",")
en
if startPos > 0 then Text.Trim(Text.Select(feeText, {"0".." 9", "."})) else null
)

Eso es genial, pero solo para entender

Inicie pos encuentre dónde está la "d"

¿Afterkey es texto cada vez a la derecha de drug_test_fees + 4 caracteres? por lo que captura el valor numérico

Este es ahora el bit 646.00', [['Prueba de mechón de cabello x4 secciones (3 cuero cabelludo, 1 cuerpo)', ['Cannabis', 'Cocaína', 'Opiáceos', 'Anfetamina', 'MDMA (Éxtasis)'], '646.00']]], 'coll, etc., así que mira a la izquierda de la primera coma y la recorta

Text.select solo selecciona números y "."

Genius muchas gracias

Helpful resources

Announcements
New to Fabric survey Carousel

New to Fabric Survey

If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.

March Power BI Update Carousel

Power BI Community Update - March 2026

Check out the March 2026 Power BI update to learn about new features.

Top Kudoed Authors