Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
vitexo87
Creator
Creator

Concatenar numero com texto e classificar

Estou tentando ordenar os valores do eixo do meu gráfico porem não estou conseguindo ordenar da maneira correta.

Estou concatenando o ano com o mês, por exemplo 2008/JAN,

Estou utilizando a expressão =[Cód Ano]&'/'&[Desc Mês] porem o máximo que consigo e ordenar o ano mas os meses ficam todos desorganizados.

Como posso resolver esse problema?

Em anexo tem um exemplo

Labels (7)
1 Solution

Accepted Solutions
aderlanrm
Partner - Specialist
Partner - Specialist

Olá Vitor,

Considerando que a origem é um campo do tipo data, use:
Date(CampoData,'yyyy/MMM') as [Mês Ano] ou em uma dimensão calculada, mas lembre que é boa prática fazer isso no script, evitando dimensões calculadas.

Considerando que a origem são dois campos, um como número e outro texto, use:

Date(MakeDate([Cód Ano],Month(Date#([Desc Mês],'MMM')),'yyyy/MMM') as [Mês Ano]

Espero que seja útil, abraço.

*** Sempre marque as respostas corretas e úteis para também ajudar outras pessoas a encontrar respostas. ***

Aderlan Rodrigues
Analista, Arquiteto de Dadose e Desenvolvedor
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)

View solution in original post

6 Replies
Nilton
Contributor II
Contributor II

Vá nas propriedades do gráficos, na aba "Classificar", desmarque todas as opções e marque a opção "Expressão" e coloque Ascendente, na formula coloque:
=[Cód Ano]&num([Desc Mês])


Se você tiver um campo de mês Número mude a expressão, ex: [Cód Ano]&[Cód Mes]

aderlanrm
Partner - Specialist
Partner - Specialist

Olá Vitor,

Considerando que a origem é um campo do tipo data, use:
Date(CampoData,'yyyy/MMM') as [Mês Ano] ou em uma dimensão calculada, mas lembre que é boa prática fazer isso no script, evitando dimensões calculadas.

Considerando que a origem são dois campos, um como número e outro texto, use:

Date(MakeDate([Cód Ano],Month(Date#([Desc Mês],'MMM')),'yyyy/MMM') as [Mês Ano]

Espero que seja útil, abraço.

*** Sempre marque as respostas corretas e úteis para também ajudar outras pessoas a encontrar respostas. ***

Aderlan Rodrigues
Analista, Arquiteto de Dadose e Desenvolvedor
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
vitexo87
Creator
Creator
Author

não funcionou

vitexo87
Creator
Creator
Author

A origem dos dados não são date e o ano (int) e mês (texto) são de tabelas diferentes, um da tabela ano e o outro da tabela mês,

não consegui aplicar a sua solução, tem como você enviar um exemplo?

Att,

nicolett_yuri

Vitor, o ideal é você utilizar a função de datas para formatar o seu campo no script. O campo de ano já esta como inteiro, então esta correto, o que você precisa tratar é o campo de mês.

Se o seu campo estiver como texto com três caracteres (jan,fev,mar), você pode tentar assim: Month(Date#(CAMPO_MES, 'MMM')).

Para criar o campo que deseja, use o Makedate(). por exemplo:

Date(MakeDate(CAMPO_ANO, Month(Date#(CAMPO_MES, 'MMM')), 1), 'MMM/YYYY') as NOVOCAMPO

aderlanrm
Partner - Specialist
Partner - Specialist

Vitor,

Se você não conseguiu aplicar a minha solução, como conseguiu aplicar a do Yuri?

Valeu, abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dadose e Desenvolvedor
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)