Skip to main content
Announcements
See why Qlik is a Leader in the 2024 Gartner® Magic Quadrant™ for Analytics & BI Platforms. Download Now
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Extraer un fragmento de un excel

Hola, necesitaría saber como puedo hacer para extraer un fragmento de un excel.

Como ejemplo en la siguiente tabla, solo debo extraer la información entre las Filas "TITULO 2" y "TITULO 3"

La dificultad esta en que la cantidad de filas anteriores son dinámicas y no puedo calcular con un numero fijo.

Header 1Header 2Header 3
TITULO 1
CAMPO ACAMPO BCAMPO C
1231323412312
12321312312123123
TITULO 2
CAMPO ACAMPO BCAMPO C
234234232313423423
234234234234234234
234234223423234234
TITULO 3
CAMPO ACAMPO BCAMPO C
23445464564564234232

Muchas Gracias.

Saludos

1 Solution

Accepted Solutions
ramoncova06
Specialist III
Specialist III

este script te puede ayudar

Temp:

LOAD A,

     B,

     C

FROM

Libro*.xlsx

(ooxml, no labels, table is Hoja1)

;

Temp2:

load

*,

if(WildMatch(A,'*TITULO*'),

if(WildMatch(A,'*TITULO 2*'),1,0),Peek(RowSeq)) as RowSeq

Resident Temp;

Final:

NoConcatenate

load

*

Resident Temp2

Where RowSeq = 1;

drop tables Temp,Temp2;

View solution in original post

11 Replies
ramoncova06
Specialist III
Specialist III

si asi se llaman los valores que quieren identificar puedes usar wildmatch y peek para sacar las lineas que necesitas

load

*

Where RowSeq = 1;

load

*,

if(WildMatch([Header 1],'*TITULO*'),

if(WildMatch([Header 1],'*TITULO 2*'),1,0),Peek(RowSeq)) as RowSeq;

load * Inline

[Header 1 Header 2 Header 3

TITULO 1

CAMPO A CAMPO B CAMPO C

1231 3234 12312

12321 312312 123123

TITULO 2

CAMPO A CAMPO B CAMPO C

234234 2323134 23423

234234 234234 234234

2342342 23423 234234

TITULO 3

CAMPO A CAMPO B CAMPO C

2344546 4564564 234232]

(delimiter is ' ' );

Not applicable
Author

Muchas gracias Ramon por la respuesta, pero no termino de comprender como funciona.

En mi caso levanto esa tabla de muchos excel, hoy logro traer toda la información, pero no logro discriminar solo la info entre "titulo 2" y "titulo 3"

Este es mi código, como podría aplicar tu explicación?

Gracias, Saludos

Directory;
PENDIENTES_TEMP:
LOAD Distinct
         
CAMPOA,

          CAMPOB,

          CAMPOC

FROM
[..\Fuentes\*.xls]
(
biff, embedded labels, header is 3 lines, table is Hoja1$)
WHERE(not IsNull(CAMPOB)
And not IsNull(CAMPOC) );

JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Hola Federico:

En el editor de script tienes un asistente para importar ficheros planos, seleccionas el tipo excel correspondiente, pulsas siguiente y pulsas el botón 'Habilitar Paso de Transformación'

En la nueva ventana selecciona 'Eliminar Condicional' e introduce la información adecuada para trocear tu archivo,

Espero que te sirva de ayuda

Joaquín

Not applicable
Author

Gracias Joaquin por la cooperación, pero no me sirve el asistente, ya que en mi caso cargo muchos archivos excel y ese fragmento varia de fila según la cantidad de registros que tenga el archivo.

Por eso necesito un script de carga dinámico que pueda identificar donde comienza y termina ese fragmento.

Saludos

JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Federico, tienes un botón de 'eliminar condicional' ... eso elimina partes del contenido en base a reglas como por ejemplo 'Columna A' = 'Título'.

No solo elimina la Fila 7

Not applicable
Author

Estuve intentando seguir tu recomendación, pero no logro entender como se configuraría un condicional para un rango.

Dejo 2 excel de demo con el qvw de carga para ver si me pueden ayudar.

Desde ya muchas gracias

ramoncova06
Specialist III
Specialist III

este script te puede ayudar

Temp:

LOAD A,

     B,

     C

FROM

Libro*.xlsx

(ooxml, no labels, table is Hoja1)

;

Temp2:

load

*,

if(WildMatch(A,'*TITULO*'),

if(WildMatch(A,'*TITULO 2*'),1,0),Peek(RowSeq)) as RowSeq

Resident Temp;

Final:

NoConcatenate

load

*

Resident Temp2

Where RowSeq = 1;

drop tables Temp,Temp2;

JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Federico, aquí tienes tu aplicación modificada

JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Hola Federico:

Cuando pulsas 'Eliminar Condicional' dentro de 'Habilitar Pasos de Transformación' te sale una nueva ventana; mientras vayas creando condiciones con 'Añadir' te crea una condición de eliminación 'AND' cada vez que pulsas 'Aceptar' te crea una condición de eliminación 'OR'

Espero haber aclarado tus dudas respecto a importar ficheros excel debidamente depurados.

Saludos

Joaquín