1 2 3 Previous Next

Qlik Brasil

109 posts

Hello everybody,

 

I do many Qlik demonstrations for different types of audiences and companies and I often get the following question:

- Can you connect to Whatsapp?

 

Well, it´s hard, but... - No, I can´t, until now !!

 

Pre-requisites:

  1. Qlik Sense Desktop. I use the version setember2017, but I think it´s compatible with anyone others.
    • If you to use the Qlik Cloud, you may to substitute the extensions by standard graphs.
    • If you want to use Qlik Enterprise, just import this app at QMC. Remember to make the Folder connection available.
  2. The simple app use this extensions, just click to download this
  3. The analyzing app
    • Whatsapp - PT-BR and Whatsapp - EN

 

Step 1 - Extract the Group messages

At you cell phone open Whatsapp and enter in a group you want to extract the messages.

Just click on three points at group upper corner.

Then select More...

Send to email...

Select Without midia.

 

This feature is not available at Whatsapp Web, so you need to use the cell phone, not the computer.

 

Step 2 - Store the file at a working directory

Acess the e-mail and Save to... the file into working directory

 

Step 3 - Open Qlik Sense and load the data

Download this sample application

Open the Qlik Sense Desktop

Open the sample app Whatsapp

Just Reload the data

 

Notes:

1) The name of the group was generated by Whatsapp folloing this:

Whatsapp Conversation with <Group>.txt

So the following code identify de <Group> by FileBaseName and SubField functions

and its load several files using the <*.txt>. You just put the files at same directory.


2) There are some particular words at Whatsapp: enter, left, start, add

This code identify this particular words to extract the correct messages

 

3) Identify the line breaks

The txt file break the messages when member type enter.

To avoid this, we need to verify if @1 it´s a date, and Peek to bring the last loaded line.

 

4) Avoiding unwanted chars and words

I use a Purgechar and Not Match to avoing load words that´s i consider garbage, you can

edit this in the Words Section.

 

 

 

This is a simple way to do that and I hope you can improve this and share about all of us.

 

Best regards,

 

Pedro A. Bergo

Olá,

 

Eu faço muitas demonstrações de Qlik para diferentes tipos e públicos e empresas. Frequentemente recebo a seguinte pergunta:

- Você consegue conectar no Whatsapp?

 

Bem, é difícil, mas... - Não, não consigo, até hoje !!

 

Pré-requisitos:

  1. Qlik Sense Desktop. Eu utilizo a versão setember2017, mas acho que é compatível com todas as outras.
    • Se você usar o Qlik Cloud, deverá substituir as extensões pelos gráficos padrões.
    • Se você quiser utilizar com o Qlik Enterprise, apenas importe essa app pelo QMC. Lembre-se que disponibilizar um conexão ao diretório de dados.
  2. Baixe essas extensões, apenas clicando
  3. App de análise
    • Whatsapp - PT-BR ou Whatsapp - EN

 

Passo 1 - Extraia as messagens de Grupo

No seu telefone celular, abra o Whasapp e entre no grupo que deseja extrair as mensagens

Clique nos 3 pontos na parte superior direita.

Selecione Mais...

Depois, Enviar por email...

Selecione SEM MÍDIA

 

Essa funcionalidade não está disponível no Whatsapp Web, então, você precisa acessar seu telefone celular, não pode ser feito pelo computador.

 

Passo 2 - Baixe os arquivos num diretório de trabalho

Crie um diretório chamado C:\TEMP\WHATSAPP

Acesse seu e-mail e clique em Salvar Anexos... para o diretório de trabalho C:\TEMP\WHATSAPP

 

Passo 3 - Abra o Qlik Sense e carregue os dados

Baixa a aplicação de exemplo

Abra o Qlik Sense Desktop

Abra a app Whatsapp

Carregue os dados

 

Notas:

1) O nomedo grupo é gerado pelo Whatsapp da seguinte maneira:

Conversa do Whatsapp com <Grupo>.txt

Então o código abaixo identifica o <Group> pela função FileBaseName, com Subfield

e pode ler vários arquivos do Whatsapp, bastando coloca-los no mesmo diretório.

 

2) O Whatsapp possui algumas palavaras próprias:

entrou, saiu, criou e adicionou

O código identifica essas palavaras para extrair a parte correta da mensagem

 

3) Identificar a quebras de linha

O arquivo txt quebra as mensagem quanto o usuário digita ENTER

Para evitar isso, verifico se o campo @1 é uma data e uso Peek para trazer a linha anterior.

 

4) Evitando caracteres e palavras indesejadas

Utilizei o Purgechar e Not Match para evitar carregar palavras que eu considero lixo, como

artigos, preposição e pronomes, então, você pode editar isso na seção Words

 

 

Esse é um método simples de carregar os dados o Whatsapp, e eu espero que vocês possam melhora-lo e compartilhar com todos.

 

Abraços,

 

Pedro A. Bergo

Prezados,

 

semana passada baixei a nova versão do Qlik Sense Desktop September Patch1 2017, quando fui carregar os dados de um projeto que trabalho com variáveis o projeto acusou erro de carga porque as varáveis não conseguiram ser atualizadas e ficaram como nulas, para reforçar minha dúvida sobre a nova versão eu desinstalei essa versão e voltei a versão anterior que estava funcionando perfeitamente, em seguida testei o script de carga e este executou com sucesso.

Traduzido deste link

 

Muitas pessoas utilizam Wordpress como portal para suas companhias.

Se você é uma delas, então você pode considerar esse plugin muito útil.

Com ele você pode criar um "mashup" utilizando a Capabilities API  sem precisar escrever nem uma linha de código.

Basta configurar o seu servidor e o ID da sua aplicação e os atalhos dos objetos que você quiser utilizar e pronto! Agora mostrarei como fazer:

1 . Vá até o painel de administração do seu Wordpress, na seção "Plugins", clique em "Adicionar Novo" / "Add New" e então pesquise por "Qlik"

 

2 . Clique em "Instalar agora" e depois em "Ativar".

3. Isso irá criar uma página de configuração chamada "Qlik Sense", abra essa página.

Settings.png

4. Nesta página defina o seu host (endereço do seu servidor), o prefixo do seu Proxy Virtual e o ID da sua aplicação

5. Salve as alterações

6. Adicione agora o código para inserir os objetos em seu post ou página

"[qlik-sense-object qvid="ZwjJQq" height="400" nointeraction="true"]"

qvid: ID do objeto a ser exibido, você consegue obter esse ID no "dev-hub/single-configurator"

height: altura da visualização em pixels

nointeraction: adicione essa tag se você quiser desabilitar as interações (cliques). Se quiser manter a interação nos objetos, omita essa tag.

EditPost.png

7. Eu adicionei alguns objetos em um template bootstrap para uma melhor visualização.

Agora vamos visualizar a página

Helloworld.png

 

Lembrete: Certifique-se de liberar o acesso à sua URL na whitelist da configuração do seu proxy virtual.

Se você gostou, por favor dê 5 estrelas para este plugin no Wordpres

 

This is it!

Yianni

 

Git: https://github.com/yianni-ververis/qlik-sense-wordpress-plugin

 

 

 

 

https://www.clever.com.br/qlik-sense-plugin-para-wordpress/

Olá,

Há 2 meses eu me propus a fazer um levantamento dos salários dos profissionais que trabalham com as plataformas Qlik.

Ativei minha rede de contatos (grupos de whatsapp, e-mail marketing e outros) e consegui obter 54 boas almas que responderam ao questionário.

 

Os resultados estão aqui: http://www.clever.com.br/pesquisa-salarial-profissionais-qlik/

Olá pessoal,

É uma recomendação que as suas chaves (campos que ligam as tabelas) sejam sempre numéricas para otimizar o uso de memória.

Várias vezes recorremos ao uso da função Autonumber() e suas "primas" AutonumberHash128() e Autonumber256() para converter uma chave string para uma chave numérica.

Se você quiser ler o que diz a documentação dessas funções

Autonumber

AutonumberHash128

AutonumberHash256

 

Você pode notar que todas as três retornam um inteiro sequencial, baseado na ordem que seus parâmetros. A diferença entre elas é que as AutonumberHash128() e Autonumber256() calculam antes um "hash" (Wikipedia) .

 

Existe um "trade-off" nessa estratégia, qualquer uma delas gasta um tempo para executar o pseudo-algoritmo abaixo

  • Esse parâmetro já foi carregado?
  • Se sim, retorna o sequencial calculado anteriormente
  • Se não, incrementa o sequencial e armazena

 

É usual encontrar situações em que a presença de um "autonumber" (qualquer um dos três) adicione até 20% no tempo de carga dos dados. Usualmente aceita-se esse tempo em troca da economia de memória da aplicação final.

 

Mas ai vem uma pergunta:

"Sei que essas funções geram uma lentidão, mas qual devo usar?"


Resolvi fazer alguns testes para comparar a velocidade de cada um deles.

Obs.:Eu foquei na geração de chaves compostas (mais de um campo) pelo fato que usualmente é o que precisamos quando montamos nossas tabelas, link-tables, etc

 

Para chaves compostas, a função Autonumber() tem uma pequena diferença em relação as outras duas.

A sintaxe dela é:

autonumber(expression[ , AutoID]) -- Esse AutoID é qual tabela de incrementos ela vai usar, podendo reiniciar de acordo com ela

Se eu precisar de uma chave composta, eu preciso concatenar com & os parâmetros

RegionSales: 
LOAD *, 
AutoNumber(Region&Year&Month) as RYMkey; // <-- Preciso concatenar com &
LOAD * INLINE [ 
Region, Year, Month, Sales 
North, 2014, May, 245 
North, 2014, May, 347 
North, 2014, June, 127 
South, 2014, June, 645 
South, 2013, May, 367 
South, 2013, May, 221];



As outras duas é:

autonumberhash128(expression {, expression}) -- Posso passar uma lista de parâmetros, sem precisar concatenar

RegionSales:
LOAD *,
AutoNumberHash128(Region, Year, Month) as RYMkey; // <-- Não preciso concatenar com &
LOAD * INLINE [
Region, Year, Month, Sales
North, 2014, May, 245
North, 2014, May, 347
North, 2014, June, 127
South, 2014, June, 645
South, 2013, May, 367
South, 2013, May, 221];

 

Esse "esforço" de concatenar quando usamos a autonumber() aparentemente impacta o desempenho.

Abaixo o script que usei, onde gero uma massa com 10 milhões de registros, gerando o sequencial e salvando o cronômetro

Let quant = 10000000;

Let v1=now();
t1:
LOAD
ID,
AutoNumber(ID&Valor);
load
RecNo() as ID,
Rand() as Valor
autogenerate $(quant);

Let v2=now();
t2:
LOAD
ID,
AutoNumberHash128(ID,Valor);
load
RecNo() as ID,
Rand() as Valor
autogenerate $(quant);

Let v3=now();
t3:
LOAD
ID,
AutoNumberHash256(ID,Valor);
load
RecNo() as ID,
Rand() as Valor
autogenerate $(quant);
Let v4=now();

drop Table t1,t2,t3;

 

Depois fiz uma pequena aplicação comparando os dados

v2-v1 v3-v2 v4-v3
00:01:1300:00:2600:00:24

 

Podemos notar que as AutonumberHas128() e AutonumberHash256() praticamente se equivalem, mas são bem mais rápidas que a Autonumber(). Muito provavelmente isso deve-se à necessidade de concatenar as strings utilizando-se o &.

 

Eu acredito que esses resultados irão variar conforme a frequência de repetição, tamanho dos campos entre outras fatores.

Faça seus testes e comente aqui a que resultado

 

images?q=tbn:ANd9GcQtGSNKsAMBOcg5_XjpRjZOMe6nJNe1NBmM9EorWQ3s3eMNkIU_Og

Boa tarde Pessoal,

 

Segue um link para quem quer um auxilio no momento de montar seu Set Analysis.

Acabei de utilizar e me ajudou.

 

Quem tiver interesse:

Set Analysis - Construa o seu código

 

Caso já conheciam, me desculpem.

 

Atenciosamente.

Clever Anjos

Tricks and tips

Posted by Clever Anjos Aug 9, 2017

Algumas dicas que podem ser utilizadas frequentemente otimizando as aplicações

 

    1 - Expressão do tipo If(<expressao> < 0, 0, <expressao>)

    Esse tipo de expressão pode ser simplicada com a função Rangemax() que traz o maior valor entre dois ou mais

    If(<expressao> < 0, 0, <expressao>) -> Rangemax(<expressao>,0)

 

    2 - Expressão do tipo If(<expressao> > 1000, 1000, <expressao>)

    Esse tipo de expressão pode ser simplicada com a função Rangemin() que traz o maior valor entre dois ou mais

    If(<expressao> > 1000, 1000, <expressao>)-> Rangemin(<expressao>,1000)

 

   3 - Expressão do tipo if(isnull(<expressao>),0,<expressao>)

    Esse tipo de expressão pode ser simplicada com a função Alt() que além de ser mais curta, evita que a <expressao> seja avaliada duas vezes

   if(isnull(<expressao>),0,<expressao>)  ->  Alt(<expressao>,0)

Boa tarde Pessoal,

 

Quero compartilhar com vocês uma necessidade que um cliente pediu. Ele queria um gráfico de Barras que mostra-se o valor por Ano, Mês, Quarter e Semana na mesma dimensão. Ou seja, os valores seriam agregados em cada barra de acordo com o período da dimensão. Os períodos da dimensão seriam Ano, Mês, Quarter e Semana. Isto seria mostrado ao mesmo tempo na análise, não como em um grupo.

 

 

Dimensão:

 

Período: Ano, Mes, Quarter e Semana

 

Gráfico montado com a dimensão Período:

 

Grafico_Periodo.png

 

 

Segue anexo o qvw com o exemplo completo.

 

Achei interessante postar este exemplo. Pode ser que ajude alguém que precise de alguma coisa parecida.

 

Atenciosamente,

 

João Carlos Ferreira

Introdução


      Várias empresas costumam apresentar no setor de operações um monitor com alguns indicadores de área. O uso destas apresentações geralmente ocorre em empresas de contact center.  Assim é possível acompanhar dinamicamente os indicadores da área. Em um Call Center é muito comum analisar como estão as vendas, as resoluções de problemas e atendimento de um modo geral. Tudo isto pode ser medido por indicadores. E os mesmos podem ser apresentados para área operacional.


 

Solução customizada para apresentações de aplicativos


     Uma opção de apresentação dos aplicativos é o uso de customizações de apresentação em uma página web. As pastas podem ser apresentadas automaticamente uma a uma sem a necessidade de um usuário ficar navegando entre as pastas.

 

Siga os procedimentos sobre como criar a personalização:


  • Acessar o Qlik Sense   Desktop ou abrir o Qlik Sense Site: Ao abrir o hub do qlik sense você terá acesso à configuração de implementações no Dev Hub.

 

Veja o print:

 

 

  • Acesso o Dev Hub, escolha a opção Single Configurator

 

 

  • Escolha o aplicativo

 

 

 

  • Selecione e copie os iFrames das pastas do aplicativo

 

 

Depois de executar estes procedimentos, vamos ao código javascript para implementação do HTML com a rotação das pastas. Copie o Iframes nos locais indicados como o script abaixo.

 

Código fonte:

 

 

Depois de ajustar o script com a implementação de iframes, basta salvar o arquivo com a extensão html. Feito isso, basta abrir o arquivo para testar a implementação. As pastas serão exibidas automaticamente na ordem de execução no script.

 

 

Em anexo segue o arquivo Consumer Sales.html do modelo. O script pode ser alterado e adaptado de acordo com a necessidade de cada programador ou usuário. Basta abrir o arquivo em um editor de textos ou bloco de notas e realizar as adaptações.

 

Bons estudos!!!

 

João Carlos Ferreira.

CHRISTYAN ALMEIDA

Otimização de QVDs

Posted by CHRISTYAN ALMEIDA May 16, 2017

Neste post vou tentar explicar como funciona as cargas de QVDs otimizados e o que você pode alterar em seu escript para utilizar este recurso.

A carga de QVDs otimizados podem ser até 100x mais rápida do que a de um QVD não otimizado, isso acontece pelo fato da compressão que existe nos arquivos com o formato QVD, quando realizamos cargas otimizadas este formato de compressão é carregado diretamente do disco para a memória, o que não acontece em cargas não otimizadas.

Isto acontece porque algumas operações necessitam que o arquivo QVD seja descomprimido para que seja possível realizar modificações em seus dados e depois realizar o processo de compressão novamente, este processo faz com que o processo de carregamento fique notavelmente mais lento em relação a cargas otimizadas.

Operações como adição de novos campos, carregamento de campos modificados, campos duplicados, realização de joins em tabelas pré existente e a maioria das condições WHERE fazem com que o seu QVD não tenha um carregamento otimizado dos dados. Operações como renomeação de campos e atilização da clausula EXISTS não afetam negativamente no carregamento otimizado.

Olhando assim parece ser muito limitado os casos que podemos executar carregamentos otimizados, já que a maioria das operações realizadas impossibilitam este tipo de otimização, portanto sempre que possível realize estar operações não no momento de carregamento de seus QVDs, mas na hora que estiver construindo os mesmos.

Em alguns casos o processo de desenvolvimento  necessário para criar QVDs otimizados podem não compensar o tempo ganho em performasse e lembre-se que arquivos QVDs mesmo não otimizados são mais rápidos que qualquer outro fonte de dados.

Nowadays, I'm working with Data Analytics to get more delivery accuracy of products and projects. One of the projects we recently delivered was about a "Retailing Company" which sells clothes and accessories. We've created mobile apps for live selling on the streets with sellers crossing the city by cars and motorbikes.

 

The first challenge was to create an adequate Data Warehouse with clear and correct information. Our customer needs were to get more information of his consumers and we use mobile solutions to update the main database and he gave some discount benefits during the selling process.

 

Afterwards, we used Qlik Sense to deliver the visualizations to keep the analysis up to date according to the company's strategy. The customer was amazed with the simplicity of the presented data. He told me about the main goals of analysis and I've created with the team the Data Model and suggested some strategic KPIs for complementing the comprehension with his business products.

 

Capture-1.png

The customer authorized by himself to publish this success case, but I will not write about his strategic dashboards just because they are very sensitive for his business segment.

 

After the primary results, we were asked about the accuracy of the data. Some clothes for winter, for example, were bestselling during summer. "If is this correct, please tell me what's wrong?" Said the CEO. We checked the data again and again and concluded that were correct and informed the analysis to the company. The CEO accepted the criteria, but was not satisfied with the inconclusive explanation of the cause.

 

As people who live in São Paulo may know, the weather in here is a kind of crazy. We can have the four seasons during a day. That unpredictable fact about the predictable gave us the idea about cross the selling data with the historical results of the weather by each district of the city.

 

Capture-9.png

The data could be analyzed by several dimensions:

 

  • Temperature;
  • Year (comparing to others);
  • Month and its evolution;
  • Season of the year;
  • Relative humidity;
  • Air direction;
  • Air speed;
  • Customers by: sex, age and marital status.

 

The functionality was incorporated to the company marketing campaign and the weather forecast on the TV news is now the most important audience for the managers and for the CEO.

 

Few days later, they concluded about the new vision of the company data:

 

  1. The amount of products is increased by low temperature with lower wind speed;
  2. Hours with lower humidity decreases exponentially the sales on all regions;
  3. Single men buy more than any other kind of customers' combinations;
  4. Women buy more when the heat is on.

 

We've created web services based on geojson standards to populate the maps about the city districts. São Paulo has about two thousand neighborhoods distributed on ninety six districts and the mobile app capture the global position during the selling even if the customer is his or her home and the information is synced with the database. The service classify the position into neighborhood coordinates inside the visualizations.

 

Capture-6.png

The result was very satisfactory and the customer just couldn't believe on what's happening inside the selling processes. The greatest amount of sales was very far from the physical stores and the sellers' regions wasn't covered by that area. The products market share by season of the year, including holidays. The analysis is about the week day and the month evolution of the selling.

 

Capture-8.png

Selling results of each hour according to day by day analysis were involved during the seasons of the year and compared with the results inside the districts of the town.

 

Capture-5.png

Comparative periods were optimized during cross companies segments around the districts, such as other industries selling the same products. That strategy gave to the CEO the insight about the opportunity of the company position related to the product distribution in the neighborhoods. They contacted a good marketing campaign to increase the product acceptation and get valuable information about the selling on each region.

 

Capture-7.png

 

For now on, every night all the managers, marketing people, main board directory of the company watch the weather forecast to prepare the products for the selling of the next day.

 

The stocked product which was not sold during last year was offered with special prices to the good customers distributed by city districts and now the stock is up to date according to the weather movement.

 

Discover your data and increase your results with the correct Data Analytics!

First of all to start with I am Qlikview newbie and this is my first post in Qlikview Forum. Hope this helps you to resolve the ordering issues we face in listboxes that are dependent upon selections on another listbox:

 

Problem Statement: I had a requirement from my client where we needed to have a Listbox that would show a single name for a group of elements. For ex: Group_A would refer to Metric ids 1,2,5,7,8 11,13,14,15, Group_B would refer to Metric ids 3,6,9. Lets consider two groups for now.

 

So the First Listbox would basically contain two values Group_A, Group_B


Now based upon what I select(Group_A or Group_B) ,the second listbox should be able to filter out the Metric ids. Keep in mind the ordering for the respective Groups should always be same in the second listbox.


From the database prospective we just have one table(Table_A) that contains Metric ids, Metric Names,Metric Description. How will you resolve this?


Solution:


In order to resolve the above problem statement. First we need to Edit the Script as below:


Load Metric_id,Metric_name,Metric_Desc, IF(match(Metric_id,1,2,5,7,8 11,13,14,15),'Group_A',if(Match(Metric_id,3,6,9),'Group_B')) as RULE_TYPE;

select * from <Schema_name>.Table_A.


Now on the Dashboard we will create two listboxes and a variable RULE_TYPE_VARIABLE:


First Listbox will have values from RULE_TYPE field(Group_A,Group_B). Then ,we will move to Settings-->Document Properties-->Triggers--> Click on Rule_Type --> Edit Actions--> Set variable--> Select variable--> RULE_TYPE_VARIABLE--> Set the variable definition as ( GetFieldSelections(RULE_TYPE)).


Now on the Second Listbox,we will use an expression IF(substringcount(RULE_TYPE,RULE_TYPE_VARIABLE)=1,Desc_Metric).

At last we will go to Sort properties and click on Ascending.


Hence, Now we have a listbox which is hierarchically dependent upon manual selections on previous Listbox.


Guys, if you have any better solution to the above problem please post it on the comments so that I can incorporate the same in my dashboard.






Caros amigos;

Com o propósito de organizar e sumarizar minhas publicações;

Segue abaixo a relação de Documentos, Aplicativos e Arquivos no intuito de apoiar a comunidade:

 

  • Documentos:
Nome/LinkCaso de uso
Manual do usuário | Como criar e gerir minhas perguntasGuia/instrução para os usuários da comunidade Qlik, no intuito de orientar na utilização dos principais recursos da Qlik Community (Jive) para criar e gerir suas perguntas, ajudando obter melhores resultados e êxito
Somar intervalo de tempo/produção dos recursos | Período útil

Necessário somar o tempo de inatividade dos recursos no período de produção útil, desconsiderando feriados nacionais e horário de almoço e apresentar a quantidade de dias das ocorrências. Obs.: Serve para medir o tempo de trabalho (H/H)

Transposição/Inversão de colunas para linhas | CrossTable (Tabela Cruzada)Necessário alterar a posição dos campos/atributos que representam períodos de tempo para registros/tuplas, no intuito de servir de forma mais simples como dimensão/filtro
Incluindo saldo/acumulado via Script ou via ExpressãoNecessário apresentar o saldo/acumulado discriminado por data e segmentado pelo Título em uma tabela
Adicionando/Preenchendo intervalo de datas nos eventosNecessário gerar os intervalos de datas com os critérios de início e final dos eventos
Concatenar linhas/registros via Script ou via Expressão Necessário unificar/concatenar os registros COD e NOME apresentados nas linhas de forma não repetir

 

  • Aplicativos:
Nome/LinkCaso de uso
Z_Tratando_aggr_reg_grao_dif.qvf Agrupando registros com dimensões de granularidades diferentes
Z_Tratando_corte_datas.qvfDRE com mês de corte


  • Arquivos:
Nome/LinkDescrição
Datas Comemorativas - Feriados Nacionais - Brasil.xlsRelação de feriados nacionais, ano 2001 - 2078

Pergunta do Grupo SOS Qlik de hoje:

Pergunta: é possível colocar um campo calculado como filtro? Aplicação: contar qtde de vendas para cliente e selecionar com x nro de vendas.

 

Abaixo como ficaria:

O usuário possui um "slider" para escolher quais os limites superiores e inferiores de venda

Capturar.PNG

 

 

Para construir precisamos ter uma lista atrelada a um campo que não esteja lincado à nuvem (Data Island) e depois um pouquinho de Set Analysis avançado onde incluímos uma regra para filtrar os vendedores:

 

sum({<Vendedor={"=Sum(Vendas)>=$(=Min(Faixa)) and Sum(Vendas)<=$(=Max(Faixa)) "}>}Vendas)

 

Segue anexo o modelo:

Filter Blog

By date:
By tag: