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: 
josemaria
Creator II
Creator II

Agrupacion de un campo dentro del Sript

Hola,

Tengo una duda a ver si alguien me lo puede aclarar, tengo un campo que es tipo de cliente(1,2,3,4,10) cada numero es un tipo de cliente, necesito crear un campo que me agrupe dos tipos de clientes,pero siempre la agrupación es con el cliente (10).

os pongo un ejemplo para que me entendáis.

la carga en el script es esta y he puesto esta condición pero solo me lo hace en el primer cliente

LOAD [tipo cliente],

     [nombre cliente],

    

    

     if(match([tipo cliente], '1', '10'), 'M',

              if(match([tipo cliente], '2', '10'), 'F',

              if(match([tipo cliente], '3', '10'), 'D',

              if(match([tipo cliente], '4', '10'), 'U',)))) as [Customer group]

               

    

Gracias de antemano.

Saludos

3 Replies
salto
Specialist II
Specialist II

Hola Jose Maria,

no se si te he entendido bien, no se como los quieres agrupar. Con el IF de arriba comparas si el tipo de cliente es 1 o 10. Si se cumple, es del grupo M. Si Como se cumple la primera condición, agrupa 1 y 10 en M.

Solo entra a agrupar los tipo de cliente 2,3 y 4 cuando la anterior condición del IF no se cumple.

¿Puedes indicarnos cual es la agrupación que quieres obtener?

Saludos.

Anonymous
Not applicable

Hola Jose Maria,

lo que pasa es que la función Match te va arrojar la posición en la que encuentra el valor, es decir si Tipo Cliente es 1 te va arrojar 1 pero si es 10 la función match te arrojará 2, por tanto si quieres utilizar el condicional te tocaría evaluar la función:

intenta esto:

  if(match([tipo cliente], '1', '10') > 0, 'M',

              if(match([tipo cliente], '2', '10') > 0, 'F',

              if(match([tipo cliente], '3', '10') > 0 , 'D',

              if(match([tipo cliente], '4', '10') > 0 , 'U',)))) as [Customer group]

NOTA: te adiciono la definición de la función

match( str, expr1 [ , expr2,...exprN ] )

La función match realiza una comparación sensible a mayúsculas.

Ejemplo:

match( M, 'En','Feb','Mar')

devuelve 2 si M = Feb

devuelve 0 si M = Apr o en

rodri_morales
Creator II
Creator II

Creeria que al usar if concatenados, si cumple la primer condicion, no va a entrar a ninguna otra. Por lo que, cuando el valor es '10' te lo cuenta 'M' solamente.

Deberias separr los IF y no concatenarlos.

if([tipo cliente]='1' or [tipo cliente]='10', 'M')

if([tipo cliente]='2' or [tipo cliente]='10', 'F')