fnClassificacaoIMC

MSaúde

Classifica o IMC pelas faixas da OMS, em código ordenável ou pelo nome da faixa.

Sintaxe

M
fnClassificacaoIMC(IMC as nullable number, optional Rotulo as nullable logical) as nullable text

Parâmetros

IMCnullable numberObrigatório

Índice de massa corporal.

M
22
Rotulonullable logicalOpcional

true devolve o nome da faixa; omitido devolve o código XX-Y.

M
true

Tipo de retorno

nullable text

Exemplos

M
fnClassificacaoIMC(22)
// "03-5"

fnClassificacaoIMC(37, true)
// "Obesidade grau II"

Código completo

M
let
    fnClassificacaoIMC = (IMC as nullable number, optional Rotulo as nullable logical) as nullable text =>
        let
            // {limite superior (exclusivo), código, rótulo}
            vFaixas = {
                {17, "01-7", "Magreza moderada a grave"},
                {18.5, "02-6", "Magreza leve"},
                {25, "03-5", "Peso normal"},
                {30, "04-4", "Pré-obesidade"},
                {35, "05-3", "Obesidade grau I"},
                {40, "06-2", "Obesidade grau II"},
                {Number.PositiveInfinity, "07-1", "Obesidade grau III"}
            },
            vFaixa = List.First(List.Select(vFaixas, each IMC < _{0}), null)
        in
            if IMC = null or vFaixa = null then null
            else if Rotulo = true then vFaixa{2}
            else vFaixa{1},

    Documentacao = [
        Documentation.Name = "fnClassificacaoIMC",
        Documentation.Description = "Classifica o IMC pelas faixas da OMS.",
        Documentation.LongDescription = "Retorna o código XX-Y (XX sobe com o IMC; Y é a ordem invertida) ou, com Rotulo = true, o nome da faixa. IMC null retorna null.",
        Documentation.Category = "Saúde",
        Documentation.Author = "Paulo André Jesus",
        Documentation.Version = "2.0",
        Documentation.Examples = {
            [Description = "Código", Code = "fnClassificacaoIMC(22)", Result = """03-5"""],
            [Description = "Rótulo", Code = "fnClassificacaoIMC(37, true)", Result = """Obesidade grau II"""],
            [Description = "Nulo", Code = "fnClassificacaoIMC(null)", Result = "null"]
        }
    ]
in
    Value.ReplaceType(fnClassificacaoIMC, Value.ReplaceMetadata(Value.Type(fnClassificacaoIMC), Documentacao))

Mais informações

Fonte
Paulo André Jesus — OfficeTuning · faixas: OMS
Versão
2.0

Conhecer a trilha Power BI ao vivo