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

Excluir linha(s) no processo de importação

Boa tarde pessoal.


Depois de um bocado de pesquisa, não achei algo específico sobre o assunto. Estou desenvolvendo um painel para um cliente que recebe as informações de análise, todas em .xlsx. Porém algumas tabelas já são enviadas ao meu cliente com, por exemplo, linhas de totais e algumas análises na própria sheet de dados.

Minha intenção é que o aplicativo seja o mais simples possível, sendo necessário apenas recarregar os dados. Por isso gostaria de eliminar essas linhas "inúteis" pelo próprio ​script, eliminando a necessidade de ação do usuário.


É possível?


Muito obrigado!

Labels (3)
1 Solution

Accepted Solutions
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo;

Poderá utilizar funções no Where com TextBetween(), Match(), Mixmatch(), Wildmatch(), Exists()...

Exemplo:

Load

    *

From [Tabela]

Where Wildmatch([CampoPesquisar],'*Totais*','*Sub*')=0;

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti

View solution in original post

7 Replies
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo;

Poderá utilizar funções no Where com TextBetween(), Match(), Mixmatch(), Wildmatch(), Exists()...

Exemplo:

Load

    *

From [Tabela]

Where Wildmatch([CampoPesquisar],'*Totais*','*Sub*')=0;

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Clever_Anjos
Employee
Employee

Monte condições "Where" eliminando o que não quer ler

Exemplo

Where isNum(ColunaA)

Not applicable
Author

Muito obrigado Mario e Clever!

Beleza, eu entendi a ideia do "where". Confesso que não entendi muito bem porque usaria a "wildmatch".

Apliquei o where em uma das tabelas que importadas, ela ignorou o registro com a palavra "total" porem o valor que estava em outro campo não foi ignorado.

Não existe uma função do tipo "EntireRow.Delete" como no vba?

Ou alguma forma de implementar isso na linguagem do Qlik?

Obrigado novamente.

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo;

Sobre a função WildMatch:

https://help.qlik.com/pt-BR/qlikview/12.0/Subsystems/Client/Content/Scripting/ConditionalFunctions/w...

wildmatch( str, expr1 [ , expr2,...exprN ])


A função conta quantas vezes os valores em expr1,expr2... declarados existem no atributo/campo str, podendo utilizar coringa para pesquisar as partes dos textos se for o caso;

No exemplo, coloquei igual a 0, pois se encontrar algum valor, a função contará, recuperando resultado maior que 0 neste exemplo.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Não deixe de declarar as possíveis condições necessárias para os demais campos;

Where Wildmatch([CampoPesquisarABC],'*Totais*','*Sub*')=0

    And Wildmatch([CampoPesquisarDEF],'*linha*','*extrato*','*ex?o')=0;


Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Existe esta outra forma de filtrar;

https://books.google.com.br/books?id=tBw4V-5XEY0C&pg=PT368&lpg=PT368&dq=%22filters(Remove(Row,%22&so...

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Not applicable
Author

Estava usando a sintaxe errada.

Consegui utilizando o método acima, muito bom, obrigado!