La búsqueda de expresiones en QlikView

Toda cadena de búsqueda que empiece con el signo “=” será interpretada como una búsqueda de expresión 

=Sum(Valor_Compra)>40000

Si utilizas esta cadena en un campo listando clientes, seleccionara aquellos clientes que tienen un valor total de compras mayor a 40000. Esto significa que el motor de Qlik creara un hipercubo (el mismo que tendrías en un gráfico) que tendrá a los clientes como dimensión y a Sum(Valor_Compra) > 40000 como medida, para luego utilizarlo para determinar el resultado de la búsqueda


Puedes utilizar la misma cadena de búsqueda en cualquier otro campo, como en productos, meses o años, pero los resultados serán diferentes, así como diferentes gráficos te mostrarían diferentes números

Existen muchas implicaciones con lo escrito arriba, implicaciones que tienes que tomar en cuenta para hacer un uso correcto de las expresiones de búsqueda

Primero, un hipercubo se basa por lo normal en la selección actual, lo  que significa que la búsqueda no incluirá valores excluidos. Esto es diferente de la búsqueda de comodín (wildcard search) o de la búsqueda numérica, en donde la búsqueda es realizada en la tabla de símbolos, que contiene todos los valores, además de los excluidos. Si deseas abarcar valores excluidos en tu búsqueda, necesitaras utilizar Set Analysis en tu cadena de búsqueda

=Sum({1} Valor_Compra)>40000

Segundo, la cadena de búsqueda es una expresión booleana. Lo que significa que puedes tener varios criterios

=Sum(Valor_Compra)>40000 or Count(distinct IdOrden)>100

Pero también significa que puedes simplificar tu expresión teniendo en cuenta que todo los números que no sean cero son interpretados como verdaderos. Como ejemplo, las siguientes dos expresiones son iguales:

=Count(if(Producto='Camisa', IdOrden))>0
=Count(if(Producto='Camisa', IdOrden))

Finalmente, una expresión de búsqueda implica una agregación. Esto significa que se debe usar una función de agregación, de lo contrario, la función Only() sera usada. Por ejemplo, si deseas buscar clientes de un país especifico, puedes escribir 

=Pais='Brasil'

Esto funcionaria bien si cada cliente estuviera asociado solo con un país. Sin embargo, esto no funcionara si hay varios valores posibles por cliente. Por ejemplo, si en vez de lo anterior, buscas clientes que han comprado un producto especifico, pudieras escribir lo siguiente

=Producto='Camisa'

Con la cadena de búsqueda anterior probablemente encontraras algunos clientes, pero no los que estas buscando. Encontraras aquellos clientes que han comprado solo camisas y nada mas, dado que esa cadena de búsqueda es interpretada como Only(Productos) = 'Camisa'. Si deseas encontrar todos los clientes que compraron camisa y quizás otros productos, deberías entonces intentar una de las siguientes cadenas

=Count(if(Producto='Camisa', IdOrden))>0
=Count({$<Producto={'Camisa'}>} IdOrden)
=Index(Concat(distinct Producto, ','), 'Camisa')
=Sum(Producto='Camisa')

Se admite que las expresiones de arriba no son nada simples, pero sin embargo es así como funcionan este tipo de búsquedas en QlikView

Si se desea una manera mas simple de encontrar estos clientes, lo que se tiene que hacer es manualmente seleccionar el valor de campo "camisa" del cuadro de lista de "Productos" y luego observar la lista de clientes

Comentarios