Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Doubt about making a somewhat complex pivot table (Duda sobre cómo hacer una tabla pivotante un tanto compleja)

Hi all, I have as input a table like this:

IDcositeTechBandULDL
1and3GN1020
1and2GL1020
1and3GM1020
1and4GL1020
1and4GL1020
1no3GN1020
1and3GN1020
1and3GN1020
1and4GM1020
1and3GN6720
1and2GM6720
1and2GL6723
1and3GL6723
1no4GN6723
1and4GN6723
2and4GN6723
2and3GN6723
2and2GM3423
2and3GN3423
2and2GN3423
2and2GN3423
2and3GL3423
2and3GM3423
2and2GN343
2and3GM343
2and3GN343
2and2GL343
2no3GN343
2and3GM343
3and3GN3446
3and4GM3446
3and3GN3446
3and4GN3446
3and4GN646
3and3GL646
3and3GN646
3and3GN646
3no4GL646
3and3GM646
3and4GN646
3and3GN646

I want to know how many ID (different, so as much the result will be 3) are within a range set by me. The ranking method is obtained to calculate the percentage of traffic (sum (UL) + sum (DL)) which is offered in Tech = 4G in relation to the traffic carried on Tech Tech = = 2G and 3G,

Moreover, one need only consider cosite = yes (if cosite = no not taken into account) and must differentiate by Banda.

So, for example, each percentage shall be calculated as:

    (sum(UL)+sum(DL))[Tech=4G,cosite=si,Banda=M]/(sum(UL)+sum(DL))[Tech=2G and Tech=3G,cosite=si,Banda=M]

    (sum(UL)+sum(DL))[Tech=4G,cosite=si,Banda=N]/(sum(UL)+sum(DL))[Tech=2G and Tech=3G,cosite=si,Banda=N]

    (sum(UL)+sum(DL))[Tech=4G,cosite=si,Banda=L]/(sum(UL)+sum(DL))[Tech=2G and Tech=3G,cosite=si,Banda=L]

and for each distinct ID.

Depending on the range where the outcome of that percentage calculated are, we will add 1 to counter,

and similar to that shown table get here (not actual results):

Band
% RangeMNL
<40%201
40-60%100
>60%030
TOTAL331

I hope you have understood well, because the truth is a little hard to tell and rather more to understand ...

Greetings to all!

Translated with Google Translate - Qlik Community Administrative Team

Hola a todos, yo tengo como entrada una tabla parecida a esta:

IDcositeTechBandaULDL
1si3GN1020
1si2GL1020
1si3GM1020
1si4GL1020
1si4GL1020
1no3GN1020
1si3GN1020
1si3GN1020
1si4GM1020
1si3GN6720
1si2GM6720
1si2GL6723
1si3GL6723
1no4GN6723
1si4GN6723
2si4GN6723
2si3GN6723
2si2GM3423
2si3GN3423
2si2GN3423
2si2GN3423
2si3GL3423
2si3GM3423
2si2GN343
2si3GM343
2si3GN343
2si2GL343
2no3GN343
2si3GM343
3si3GN3446
3si4GM3446
3si3GN3446
3si4GN3446
3si4GN646
3si3GL646
3si3GN646
3si3GN646
3no4GL646
3si3GM646
3si4GN646
3si3GN646

Quiero saber cuantos ID (distintos, por lo que como mucho el resultado será 3) se encuentran dentro de unos rangos impuestos por mi. La clasificacion por rangos se obtiene de calcular el porcentaje de tráfico (sum(UL)+sum(DL)) que se cursa en Tech=4G en relacion con el tráfico cursado en Tech=2G y Tech=3G,

Además, solo hay que tener en cuenta cosite=sí (si cosite=no no se tiene en cuenta) y hay que diferenciar por Banda.

Entonces, por ejemplo, se calculará cada porcentaje como:

    (sum(UL)+sum(DL))[Tech=4G,cosite=si,Banda=M]/(sum(UL)+sum(DL))[Tech=2G and Tech=3G,cosite=si,Banda=M]

    (sum(UL)+sum(DL))[Tech=4G,cosite=si,Banda=N]/(sum(UL)+sum(DL))[Tech=2G and Tech=3G,cosite=si,Banda=N]

    (sum(UL)+sum(DL))[Tech=4G,cosite=si,Banda=L]/(sum(UL)+sum(DL))[Tech=2G and Tech=3G,cosite=si,Banda=L]

y para cada ID distinta.

En función del rango donde se encuentre el resultado de ese porcentaje calculado, sumaremos 1 al contador,

y se obtendría una tabla parecida a la mostrada aquí (no son resultados reales):

Banda
%RangoMNL
< 40%201
40-60%100
>60%030
TOTAL331

Espero que se haya entendido bien, porque la verdad, es un poco dificil de contar y bastante mas de entender...

Un saludo a todos!

1 Solution

Accepted Solutions
rubenmarin

Hola, te adjunto el script en un fichero de texto (solo carga los datos y genera el campo 'Rango')

Luego he creado una tabla pivotante, con Rango y Banda como dimensiones.

La expresión de esta tabla es:

If(Dimensionality(),

Pick(Rango,

  Count(DISTINCT Aggr(NODISTINCT If(Sum({<cosite={'si'}, Tech={'4G'}>} UL+DL)/Sum({<cosite={'si'}, Tech={'2G','3G'}>} UL+DL)<0.4, ID), ID, Banda)),

  Count(DISTINCT Aggr(NODISTINCT If(Sum({<cosite={'si'}, Tech={'4G'}>} UL+DL)/Sum({<cosite={'si'}, Tech={'2G','3G'}>} UL+DL)>=0.4

                          and Sum({<cosite={'si'}, Tech={'4G'}>} UL+DL)/Sum({<cosite={'si'}, Tech={'2G','3G'}>} UL+DL)<=0.6, ID), ID, Banda)),

  Count(DISTINCT Aggr(NODISTINCT If(Sum({<cosite={'si'}, Tech={'4G'}>} UL+DL)/Sum({<cosite={'si'}, Tech={'2G','3G'}>} UL+DL)>0.6, ID), ID, Banda))

),

Count(DISTINCT ID)

)

View solution in original post

4 Replies
rubenmarin

Hola, a ver si te sirve el documento que te adjunto.

Saludos.

Not applicable
Author

Gracias, pero tengo la Personal Edition, por lo que no puedo abrir el fichero. ¿Habría otra manera de poder verlo?

rubenmarin

Hola, te adjunto el script en un fichero de texto (solo carga los datos y genera el campo 'Rango')

Luego he creado una tabla pivotante, con Rango y Banda como dimensiones.

La expresión de esta tabla es:

If(Dimensionality(),

Pick(Rango,

  Count(DISTINCT Aggr(NODISTINCT If(Sum({<cosite={'si'}, Tech={'4G'}>} UL+DL)/Sum({<cosite={'si'}, Tech={'2G','3G'}>} UL+DL)<0.4, ID), ID, Banda)),

  Count(DISTINCT Aggr(NODISTINCT If(Sum({<cosite={'si'}, Tech={'4G'}>} UL+DL)/Sum({<cosite={'si'}, Tech={'2G','3G'}>} UL+DL)>=0.4

                          and Sum({<cosite={'si'}, Tech={'4G'}>} UL+DL)/Sum({<cosite={'si'}, Tech={'2G','3G'}>} UL+DL)<=0.6, ID), ID, Banda)),

  Count(DISTINCT Aggr(NODISTINCT If(Sum({<cosite={'si'}, Tech={'4G'}>} UL+DL)/Sum({<cosite={'si'}, Tech={'2G','3G'}>} UL+DL)>0.6, ID), ID, Banda))

),

Count(DISTINCT ID)

)

Not applicable
Author

Thank you very much!!! It definitely works really good!!