Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Want to see what's currently in public preview? We've pulled it all together in one place. Check it out here
cancel
Showing results for 
Search instead for 
Did you mean: 
samuel_rodrigue
Contributor III
Contributor III

Do While

Boa Tarde,

     Tenho uma planilha excel, e preciso criar um campo de classificação nova a partir dos códigos.
     Porém preciso aplicar uma regra diferente por  "organização"  especifica, pelo que entendi poderia usar um Loop Do while, porém não consegui aplicar a regra. Poderiam me auxiliar por gentileza?. Segue o código:

Do while [Organizacao] = 'Curitiba'

IF([CODIGO-Item] >= 100000000 and [CODIGO-Item] <=200000000, 'A',

IF([CODIGO-Item] >=300000000 AND [CODIGO-Item] <309999999, 'B',

IF(([CODIGO-Item] >=400000000 and [CODIGO-Item] <409999999) OR ([CODIGO-Item] >=430000000 and [CODIGO-Item] <439999999), 'C',

IF(([CODIGO-Item] >=420000000 and [CODIGO-Item] <429999999), 'D'

)

)

    )

        )  as [Categoria]

Loop

Labels (2)
1 Solution

Accepted Solutions
felipedl
Partner - Specialist III
Partner - Specialist III

Olá Samuel,

Quando você executa o comando load, ele mais ou menos faz um Do / While linha a linha.
Sendo assim, você poderia fazer no seu load essa transformação.

ALgo do tipo:

Dados:

Load

          [Organizacao],

          [CODIGO-Item],

          if

          (

               [Organizacao]='Curitiba',

               IF

               (

                    [CODIGO-Item] >= 100000000 and [CODIGO-Item] <=200000000,

                    'A',

                    IF

                    (

                         [CODIGO-Item] >=300000000 AND [CODIGO-Item] <309999999,

                         'B',

                         IF

                         (

                              ([CODIGO-Item] >=400000000 and [CODIGO-Item] <409999999) OR ([CODIGO-Item] >=430000000 and [CODIGO-Item] <439999999),

                              'C',

                              IF

                              (

                                   ([CODIGO-Item] >=420000000 and [CODIGO-Item] <429999999),

                                   'D'

                              )

                         )

                   )

        )  as [Categoria]


FROM [Qualquer coisa];


Nesse caso, somente a organização Curitiba ter avalores de codigo-item.


Att,


Felipe.

View solution in original post

2 Replies
felipedl
Partner - Specialist III
Partner - Specialist III

Olá Samuel,

Quando você executa o comando load, ele mais ou menos faz um Do / While linha a linha.
Sendo assim, você poderia fazer no seu load essa transformação.

ALgo do tipo:

Dados:

Load

          [Organizacao],

          [CODIGO-Item],

          if

          (

               [Organizacao]='Curitiba',

               IF

               (

                    [CODIGO-Item] >= 100000000 and [CODIGO-Item] <=200000000,

                    'A',

                    IF

                    (

                         [CODIGO-Item] >=300000000 AND [CODIGO-Item] <309999999,

                         'B',

                         IF

                         (

                              ([CODIGO-Item] >=400000000 and [CODIGO-Item] <409999999) OR ([CODIGO-Item] >=430000000 and [CODIGO-Item] <439999999),

                              'C',

                              IF

                              (

                                   ([CODIGO-Item] >=420000000 and [CODIGO-Item] <429999999),

                                   'D'

                              )

                         )

                   )

        )  as [Categoria]


FROM [Qualquer coisa];


Nesse caso, somente a organização Curitiba ter avalores de codigo-item.


Att,


Felipe.

Thiago_Justen_
MVP
MVP

Talvez se fizer simplesmente assim já funcionaria:

IF([Organizacao] = 'Curitiba' and

     IF([CODIGO-Item] >= 100000000 and [CODIGO-Item] <=200000000, 'A',

          IF([CODIGO-Item] >=300000000 AND [CODIGO-Item] <309999999, 'B',

               IF(([CODIGO-Item] >=400000000 and [CODIGO-Item] <409999999) OR ([CODIGO-Item] >=430000000 and [CODIGO-Item] <439999999), 'C',

                    IF(([CODIGO-Item] >=420000000 and [CODIGO-Item] <429999999), 'D'

                    )

               )

              )

          )

     )      as [Categoria]

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago