Campos calculados: o resultado pronto na hora da coleta

O Campo Calculado do HashData executa uma fórmula sobre as respostas do formulário e entrega médias, notas de auditoria, índices e conversões no momento em que a coleta acontece. A regra fica no formulário, igual para todas as unidades, e ninguém precisa refazer a conta em planilha.

Auditoria de boas práticas

Experimente: altere as respostas e veja a nota recalcular.

Uniformes e touca em uso
Higienização das mãos na entrada
Temperatura da câmara registrada
Lixeiras com tampa e pedal

Campo calculado: nota da auditoria

83%

25 de 30 pontos em 3 itens avaliados. “Não se aplica” fica fora da conta.

function calculateValue() {
  const itens = findByTag('#item')
    .filter(r => hasContent(r.number));
  const pontos = itens
    .reduce((s, r) => s + r.number, 0);
  return Math.round(
    pontos / (itens.length * 10) * 100);
}

Em resumo

O Campo Calculado é um elemento dos formulários do HashData que executa uma fórmula escrita em script sobre as respostas anteriores e devolve um número. Ele calcula médias, somas, notas percentuais, índices de risco e conversões no momento da coleta, ignora corretamente perguntas em branco e permite encadear cálculos, como notas por seção seguidas de uma nota geral.

Por que calcular dentro do formulário

Em muitas operações, o formulário digital substitui o papel só na hora de coletar. A conta continua sendo feita depois, numa planilha: a média das amostras de peso, a nota da auditoria, a conversão de consumo em indicador. Cada etapa manual abre espaço para erro de fórmula, de cópia ou de versão, e o resultado só aparece dias depois.

Com o Campo Calculado, a regra de cálculo fica no próprio formulário. Quem coleta vê o resultado na hora, e quem analisa recebe o número já calculado do mesmo jeito em todas as unidades. Se a regra mudar, ela é atualizada uma vez só.

Quais respostas entram no cálculo

Qualquer resposta com valor numérico pode ser usada. Nas perguntas de escolha, cada opção recebe um valor, o que transforma marcações como “Conforme” e “Não conforme” em pontos.

Tipo de perguntaValor usado no cálculo
Número inteiro, decimal e quantidade com emojisO número informado
Seleção única (menu, rádio, botões)O valor numérico da opção escolhida
Seleção múltipla e ordenaçãoOs valores das opções marcadas e, na ordenação, a posição de cada item
Avaliação (expressões faciais, emojis)O valor da nota
Data, data e hora, tempoA data ou a hora informada
Envio de arquivosA quantidade de arquivos enviados
Texto, e-mail e geolocalizaçãoTexto, rótulos e coordenadas, para usar como condição no cálculo
Outro campo calculadoO resultado da fórmula anterior, para encadear cálculos

Como funciona o script

Toda fórmula é uma função chamada calculateValue que devolve um número ou vazio (null). A sintaxe é a de JavaScript/TypeScript, e o editor sugere os nomes das perguntas e das funções com autocompletar (Ctrl+Espaço). Cada pergunta é acessada pelo seu nome de campo dentro do objeto resp.

function calculateValue() {
    return (resp.peso_amostra_1.number
          + resp.peso_amostra_2.number
          + resp.peso_amostra_3.number) / 3;
}

Cálculo por tags

As tags agrupam perguntas e deixam a fórmula independente de nomes individuais. Marque todas as perguntas de peso com #peso e use uma única função. Se o formulário ganhar uma nova amostra, a fórmula continua certa sem alteração, e respostas em branco não distorcem a média.

function calculateValue() {
    return avgByTag('#peso');
}
FunçãoO que faz
avgByTagMédia das respostas numéricas com as tags indicadas, ignorando as vazias
sumByTagSoma das respostas numéricas com as tags
countByTagQuantidade de respostas com as tags
maxByTag e minByTagMaior e menor valor entre as respostas com as tags
findByTagLista das respostas com as tags, para cálculos personalizados
allLista de todas as respostas anteriores ao campo
hasContent e isEmptyVerificam se um valor está preenchido

O Campo Calculado lê as perguntas posicionadas antes dele no formulário. Por isso, ele deve vir depois de tudo o que usa.

Biblioteca matemática

O script aceita variáveis intermediárias, condições, funções auxiliares (inclusive recursivas) e a biblioteca matemática padrão: arredondamentos (round, floor, ceil, trunc), potência e raízes (pow, sqrt, cbrt), logaritmos e exponenciais, funções trigonométricas, max, min, abs e constantes como Math.PI e Math.E.

Exemplos do dia a dia

Amplitude entre medições

A diferença entre a maior e a menor temperatura mostra se o processo está estável, além da média.

function calculateValue() {
    const maior = maxByTag('#temperatura');
    const menor = minByTag('#temperatura');
    if (maior === undefined || menor === undefined) {
        return null;
    }
    return maior - menor;
}

Índice de risco

Probabilidade e severidade são perguntas de seleção com valores de 1 a 5; o índice é o produto das duas.

function calculateValue() {
    const p = resp.probabilidade.number;
    const s = resp.severidade.number;
    if (!hasContent(p) || !hasContent(s)) {
        return null;
    }
    return p * s;
}

Conversão com fator

O consumo informado vira o indicador que a empresa reporta. O fator fica documentado na própria fórmula.

function calculateValue() {
    const consumo = resp.consumo_kwh.number;
    if (!hasContent(consumo)) {
        return null;
    }
    const fator = 0.0385; // fator ilustrativo
    return consumo * fator;
}

Contagem de evidências

Perguntas de envio de arquivo valem a quantidade de arquivos anexados. A soma mostra quantas fotos a inspeção reuniu.

function calculateValue() {
    return sumByTag('#evidencia');
}

Casos de uso por segmento

SegmentoCálculoComo é montado
Indústria de alimentosPeso médio e amplitude de amostrasPerguntas de peso com tag comum; média, máximo e mínimo por tag
Qualidade e auditoriaNota por seção e nota geralOpções com valor; um campo por seção e um campo final encadeado
Programa 5SPontuação por senso e total da áreaUma tag por senso; soma por tag e soma geral
Segurança do trabalhoÍndice de riscoProbabilidade × severidade a partir de duas seleções
SustentabilidadeConversão de consumo em indicadorConsumo informado × fator definido na fórmula
AgronegócioMédias e totais por talhão ou loteMedições de campo agregadas por tag
LogísticaVariação de temperatura entre carregamento e entregaSubtração entre duas respostas numéricas
Pesquisa e satisfaçãoNota média de avaliaçãoEscalas e expressões faciais com valor; média por tag

Planilha depois ou cálculo na coleta

SituaçãoCalcular em planilha depoisCampo Calculado do HashData
Quando o resultado apareceDepois da exportação e da conferênciaNo momento da coleta
Regra entre unidadesCada planilha pode ter uma versão da fórmulaUma única fórmula no formulário
Perguntas em brancoMédia dividida pelo total, com resultado distorcidoFunções por tag ignoram respostas vazias
Mudança na regraAtualizar todas as planilhasAtualizar o formulário uma vez
Auditoria da contaFórmulas espalhadas e células sobrescritasScript único, comentado, junto do formulário

Boas práticas

  • Dê nomes de campo claros às perguntas usadas em fórmulas, como peso_amostra_1.
  • Prefira funções por tag a listas fixas de perguntas.
  • Use avgByTag para médias, nunca soma dividida por um número fixo.
  • Devolva vazio quando faltar dado, em vez de zero, para não distorcer médias em relatórios.
  • Posicione o campo depois de todas as perguntas que ele usa.
  • Teste com a simulação de respostas antes de publicar, incluindo perguntas puladas e em branco.
  • Comente fatores e constantes no próprio script, com origem e data.

A referência técnica completa, com todos os atributos e funções, está em docs.hashdata.app.

Perguntas frequentes

O que é o Campo Calculado do HashData?

É um elemento do formulário que executa uma fórmula escrita em script sobre as respostas anteriores e devolve um número, como uma média, uma nota de auditoria, um índice ou uma conversão.

Preciso saber programar para usar?

Fórmulas simples, como médias e somas por tag, cabem em uma linha. Cálculos mais elaborados usam a sintaxe de JavaScript/TypeScript, e o editor oferece autocompletar com os nomes das perguntas e funções.

Quais respostas podem entrar no cálculo?

Números inteiros e decimais, quantidade com emojis, seleção única e múltipla com valores numéricos, avaliações por expressões faciais ou emojis, datas e horas, e a quantidade de arquivos enviados. O script também lê textos, rótulos de opções e coordenadas geográficas.

O que acontece se uma pergunta ficar em branco?

As funções por tag, como avgByTag, ignoram respostas vazias, e as funções hasContent e isEmpty permitem devolver vazio quando faltam dados. Assim, uma pergunta pulada não distorce a média.

Um campo calculado pode usar o resultado de outro?

Sim. O resultado de um campo do tipo fórmula fica disponível como valor numérico para os campos posicionados depois dele, o que permite calcular notas por seção e, em seguida, a nota geral.

Veja seus cálculos funcionando no HashData

Mostramos como transformar as planilhas de nota, média e conversão da sua operação em fórmulas dentro do formulário.

Rolar para cima