Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
rodward23
Partner - Contributor II
Partner - Contributor II

Función peek

Tengo una tabla de la cual anexo un ejemplo (en excel) ademas de una tabla de como se ve en qv

lo que busco es hacer que se repita en la columna @1 la Reg1 en todos lo campos  hasta topar con la Reg 2 y que se repita Reg2 en todos los campos hasta topar con Reg3  y así sucesivamente sucesivamente, utilizo la función peek para elegir el campo anterior y repetirlo, pero no logro que quede correctamente

alguna idea de como solucionarlo, en algunos ejemplos, he visto el uso de una tabla residente para lograrlo, pero no se muy bien como

R1Fecha@1@2
120017Reg1464556
22017aerf72452
32017arsdg24524

.

.

2017abcd275242
n2017Reg22452450
5 Replies
bertinabel
Creator
Creator

Eduardo,

Puedes mandar un ejemplo de como estan tus datos en un excel, ya que depende mucho de eso para poder solucionarlo.

El excel q mandas adjunto no trae la tabla de ejemplo que mencionas.

Saludos.

rodward23
Partner - Contributor II
Partner - Contributor II
Author

Actualice el archivo de .xlsx, espero sirva

bertinabel
Creator
Creator

Buenos Días,

     Eduardo,

     Te adjunto el archivo de Qlik con la forma en como solucione tu problema, espero te sea de utilidad.

     La idea es Recorrer con un ciclo todos los registros de la tabla, identificar cada que se tenga el valor de "REGION" en el registro y persistirlo como valor para los siguientes registros, hasta que nuevamente se encuentre la palabra "REGION".

Saludos.

rodward23
Partner - Contributor II
Partner - Contributor II
Author

Es una muy buena solución, pero al momento de aplicarlo a una tabla con miles de registros  el tiempo de carga es bastante largo y por lo tanto poco eficiente. No se si se pueda aplicar de forma diferente ese método o buscar otro camino

jubarrosor
Partner Ambassador
Partner Ambassador

Estimado:

Adjunto alternativa a la solución de Bertin Abel elimando el bucle de carga:

TablaA:

LOAD * Inline [

R1,Fecha,@1,@2

1,2017,REGION 01,464556

2,2017,aerf,72452

3,2017,arsdg,24524

4,2017,abcd,275242

5,2017,REGION 02,2452450

6,2017,ertfd,562541

7,2017,sdfrd,859654

8,2017,ccfgb,857423

9,2017,REGION 03,2452450

10,2017,rsxcfd,562541

11,2017,asdrd,859654

12,2017,ascfrt,857423

];

NoConcatenate

TablaB:

LOAD

    R1,

    Fecha,

    @1,

    @2,

    if(Index(@1,'REGION')>0, @1 ,Peek('Region', -1))    as Region

Resident TablaA;

Drop table TablaA;

Un saludo,

Juan P. Barroso