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: 
Anonymous
Not applicable

duda con varios campos

    Hola, tengo una duda a la hora de hacer una tabla. Intento explicar mi problema

   Yo tengo  3 campos:   ID, IDA e IDB

   ID --> tiene todos los valores de ID, tanto los de IDA como los de IDB

   Yo lo unifico en ese ID, para poder sacar otra informacion que saco y que es común, y para no tenerlo que sacar para IDA, para IDB lo unifico bajo ID. Pero a la hora de realizar los cálculos yo necesito poder saber cuantos IDA hay y cuantos IDB hay

es decir necesito algo del tipo    count (ID = IDB), pero no puedo poner count ID = $:: IDB, porque yo no le doy la opcion al usuario de que me seleccione los IDs, tendría que ser algo por detrás que me haga la preseleccion

Debo hacer lo mismo para el caso ID = IDA

¿Alguna sugerencia de como hacer esto?

Muchas gracias

11 Replies
ecolomer
Master II
Master II

Hola,

No estoy seguro de haberte entendido bien.

Si lo que quieres es saber cuantos elementos hay de un determinado valor pero sin que el usuario lo seleccione, se me ocurre que puedes utilizar los Estados Alternos para poner una lista en un estado alterno diferente sobre la que el usuario seleccione, y ya puedes hacer comparaciones entre el campo en el estado por defecto contra el campo del estado alterno, poniendo en la fórmula el estado así {estado}

Si no me he explicado, me lo dices y trato de ponerte un ejemplo.

saludos,

EC

Joaquin_Lazaro
Partner - Specialist II
Partner - Specialist II

Hola Jonay:

No sé si te he entendido, te valdría con

COUNT(DISTINCT IDA)

COUNT(DISTINCT IDB)

???

Saludos

Joaquín

Anonymous
Not applicable
Author

Como inificas IDA y IDB??, con un concatenate?

Load

IDA as ID

Concatenate

IDB as ID

??

Si es así tal vez con una bandera podamos diferenciarlos, podrías darnos mas datos al respecto? o adjuntarnos un qvw de muestra.

Saludos.

Anonymous
Not applicable
Author

Buenos días,

Si lo que hago en el script es algo como lo que dices. Me explico.

Tengo una tabla con un IDPrincipal, IDA,IDB,...

lo que hago es

Load IDPrincipal,

IDA as ID

resident tabla;

Concatenate

Load IDPrincipal,

IDB as ID

resident tabla;

Luego lo que hago, como ya tengo unificado los IDA e IDB bajo un ID, puedo sacar otra información que necesito. Pero a la hora de realizar los calculos necesito decir

cuentame los IDPrincipal pero cuando ID = IDA    o cuando ID = IDB

Porque si construyo una tabla donde haga los calculos referentes a IDA, como dimension solo me tendrian que aparecer los IDs que valgan IDA, no el resto de ID

Y eso es lo que no se como realizar

¿Alguna sugerencia al respecto?

Un saludo

Anonymous
Not applicable
Author

Entonces puedes cargarlo de la siguiente manera.

Load

IDA as ID,

1     as FlagA

Concatenate

IDB as ID

1      as FlagB

y si quieres saber cuantos tienes de A solamente pon Sum(FlagA) y para B Sum(FlagB)

Anonymous
Not applicable
Author

Y si necesitas otro tipo de calculo hazlo con Set Analisys, por ejemplo:

La suma de las Ventas de solo IDA

Sum( {< FlagA={1} >} Ventas)

Anonymous
Not applicable
Author

Buenas Edgar,

Muchas gracias por tu respuesta. Tú solución es buena, pero tengo un problema. Para realizar los conteo funciona perfectamente, pero te pongo en situación:

Ahora yo construyo varias tablas:

Tabla1                                                Tabla2

Grupo,  sum ({<flag1 = {1}>}ventas)       Grupo, sum ({<flag2 = {1}>}ventas)

Siendo grupo (dimensión) --> ID (el que unifico) ,campo1,campo2,campo3     osea con la unficacion puedo sacar toda esa información de una sola vez

Pero mi problema ahora es el siguiente, si yo hago una seleccion en la tabla1, se me va a filtrar en tabla2 por ese valor, porque realmente estoy usando el mismo grupo

IDA    IDB                                       

15       15

15       20

15       34

Como yo tengo unificado todo por campo ID, si yo hago una seleccion en la tabla1, eso va a hacer que en tabla2 solo me muestre el valor 15, porque realmente es el valor del ID unificado. Cuando lo que yo quiero es que cuando haga una selección eb tabla1, me muetre las 3 opciones de IDB posibles. 

Espero que entiendas mi problema

Se que se puede hacer "a lo bruto" sin realizar la unficacion bajo un mismo ID y sacando los datos para cada IDA,IDB, pero eso es menos óptimo

Por eso intento realizar una solución más óptima

Espero alguna sugerencia

Un saludo

Anonymous
Not applicable
Author

Estamos hablando del mismo objeto o de objetos diferentes?.

Eso de respetar la selección para IDA y que no afecte a IDB es un solo grafico? o tienes un grafico con IDA y otro direfente con IDB? (Esto refiriendome a internamente, me queda claro que son un solo campo ID)

Si lo tienes separado entonces ignora selecciónes, por ejemplo:

Tabla:                                                  Concatenate(Tabla)

LOAD                                              |      LOAD

CampoA,                                         |       Field1,

CampoB,                                         |       Field2,

1 as flagA,                                       |       1 as flagB

Monto,                                            |        Ventas,

IDA as ID                                        |      IDB as ID

Entonces en tus objetos de IDA tus expresiones serian:

Sum({Field1=, Field2=, flagA={1}} Monto)

y para los IDB al revez:

Sum({CampoA=, CampoB=, flagB={1}}Ventas)

Entendí bien?.

Saludos.

Anonymous
Not applicable
Author

Buenas Edgar,

Se trata de diferentes tablas (objetos), yo creo un objeto tabla para cada una y hago los conteos correspondientes. Entiendo lo que dices de ignorar las selecciones de los campos no comunes entre ambas tablas, pero eso no resuelve mi problema.

Yo en cada uno de los objetos tabla pongo el ID común , y el resto de información que saco a partir de ese ID, conformando un Grupo ciclico, ID --> Informacion1--> Informacion2

La cuestión es que si yo hago una selección en uno de los objetos tabla, como se trata de los mismos campos y grupos, eso repercute dejandome filtrado el mismo valor

IDA    IDB                                  ID = 15,20,34     (al unificarlos)

15       15

15       20

15       34

Si yo selecciono el 15, en el objeto tabla1, yo quiero que me muestre todas las posibles opciones 15,20 y 34, y no que me filtre y me deje solamente el 15

Espero que ahora entiendas la problematica que tengo....Muchas gracias por tu tiempo

Un saludo