Skip to main content
Announcements
Global Transformation Awards! Applications are now open. Submit Entry
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Limitar IDs en una tabla

Buenas,

     Tengo una tabla con varias dimensiones y finalmente hago unos cálculos. Los cálculos es algo del tipo

               Count (IDPrueba1)   y count(IDPrueba2)

Yo quiero que el resto de dimensiones solo se muestre si count(IDPrueba1)  = 0

Ejemplo

campo1  campo2  campo3      count(IDPrueba1)   Count (IDPrueba2)

   1             2           3                    0                            15                         --> Debe mostrarlo

    2           2            4                     1                            20                        --> No debe mostrarlo

    3           3             5                     0                           18                         --> Debe nostrarlo

He intentado poner condicionales en la pestaña presentación de la tabla , por ejemplo poner coun(IDPrueba1) = 0. También he intentado usar la función only en las dimensiones, pero no se como se puede añadir ahí la expresión del count

               =only({<count(IDPrueba1) = 0>} campo1)

¿Alguna sugerencia al respecto?

Un saludo

1 Solution

Accepted Solutions
Anonymous
Not applicable
Author

Hola Jonay,

Esto puedes hacerlo con Set Analysis, en la expresión directamente,

SUM({<Campo1= {"=count(IDPrueba1) = 0"}>} IdPrueba2)

Un Saludo,

View solution in original post

17 Replies
sorrakis01
Specialist
Specialist

Hola,

La tabla de que tipo es?

Si es straight o Pivot crea una dimensión calculada,

If(Count(ID1) > 0,'Tu dimension')

Saludos,

sorrakis01
Specialist
Specialist

Hola,


Si lo que quieres es esto:

Jonay.PNG

Pon esto:

Jonay2.PNG

Saludos,

rubenmarin

Hola Jonay, una opción podría ser las dimensiones calculadas, por ejemplo para campo2 podría ser:

=Aggr(If(Count(IDPrueba1)>0, campo2), campo1, campo2)

rubenmarin

Por aclararlo, lo había propuesto así para poder hacer el count, si tienes tres campos sería:

campo2: Aggr(If(Count(IDPrueba1)>0, campo2), campo1, campo2, campo3)

campo3: Aggr(If(Count(IDPrueba1)>0, campo3), campo1, campo2, campo3)

Por el enunciado de la pregunta entendía que la primera dimensión sí que tenía que aparecer, por ejemplo para estos datos:

campo1 campo2 campo3 IDPrueba1
123 
223 
2241
3352
435

Devuelve

campo1 campo2 campo3 1
1 1
2241
2 1
3351
4 1

* También por comentarlo, la opción con el analysis podría ser:

=Aggr(Only({<campo2={"=Count(IDPrueba1)>0"}>} campo2), campo2)

Aunque en este caso, los valores repetidos no se filtrarían (ni añadiendo campo3 al Aggr):

campo1 campo2 campo3 1
1
12 1
2241
22 1
3351
43 1
Anonymous
Not applicable
Author

Buenas Jordi,

la solución que propones no me vale...

If(Count(ID1) > 0,'Tu dimension')  si yo pongo algo así, me da error en la dimensión calculada


if (IDPrueba1 > 0, campo1)  --> realmente no hago el cálculo del count y de todas formas yo lo que necesito es que sea igual a 0. Y no puedo poner IDPruebaa = 0, porque ese IDPrueba1 puede existir


Gracias por intentar ayudar


Un saludo

sorrakis01
Specialist
Specialist

Hola,

No entiendo lo que me dices.... con la expresion count no va, después de escribirlo me he acordado, por reso te he puesto el 2o ejemplo. Basandote en el 2o ejemplo porque no va?

Me he basado en tus datos y en tu ejemplo.... Si ves que te falta algo a explicar puede que la respuesta sea totalmente diferente.... y sino prueba lo de Rubén que seguro que está bien.

Saludos,

Anonymous
Not applicable
Author

Buenas Jordi,

    Yo lo que necesito es que me muestre campo1,campo2,campo3, pero como dije en mi primer mensaje

                      coun(IDPrueba1) = 0


      Por eso no me vale la opción  if (IDPrueba1 > 0, campo1), porque lo que busco es que sea IGUAL a 0,

No puedo poner if (IDPrueba1 = 0,campo1) porque IDPrueba1 puede tener valor 0


No entiendo muy bien la respuesta de Ruben, que consigue en este caso con la función de aggr



Recapitulando, lo que necesito es:


campo1  campo2  campo3      count(IDPrueba1)  Count (IDPrueba2)

  1            2          3                    0                            15                        --> Debe mostrarlo

    2          2            4                    1                            20                        --> No debe mostrarlo

    3          3            5                    0                          18                        --> Debe nostrarlo


La tabla simple final es la siguiente


campo1  campo2  campo3      count(IDPrueba1)  Count (IDPrueba2)

  1            2          3                    0                            15                        --> Debe mostrarlo

    3          3            5                    0                          18                        --> Debe nostrarlo

Es decir aquella donde el count(IDPrueba1) = 0

Utilizo una tabla simple

Un saludo



sorrakis01
Specialist
Specialist

Hola,

Por eso, mira:

Jonay.PNG

Jonay2.PNG

Jonay3.PNG

No sé, creo que funciona pero a lo mejor se me escapa algo.....

Saludos,

rubenmarin

Había puesto la condición >0, cuando tenía que ser =0, corregido sería:

campo2: Aggr(If(Count(IDPrueba1)=0, campo2), campo1, campo2, campo3)

campo3: Aggr(If(Count(IDPrueba1)=0, campo3), campo1, campo2, campo3)


El Aggr es para hacer el conteo de IDdPrueba1 para cada combinación de campo1, campo2 y campo3. Al ser una dimensión QV no ha dibujado la tabla y con el Aggr creamos una especie de tabla virtual donde mirar si la fila cumple con la condición.


Si la primera dimensión no debe aparecer se puede añadir la misma condición para campo1:

Aggr(If(Count(IDPrueba1)=0, campo1), campo1, campo2, campo3)


Aunque si no quieres que salga ni la primera dimensión igual es más fácil aplicar la condición en la expresión:

If(Count(IDPrueba1), TuExpresión)