Sintaxe
M
fnClassificacaoIMC(IMC as nullable number, optional Rotulo as nullable logical) as nullable textParâmetros
- IMCnullable numberObrigatório
Índice de massa corporal.
M22- Rotulonullable logicalOpcional
true devolve o nome da faixa; omitido devolve o código XX-Y.
Mtrue
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