Campos calculados: el resultado listo en el momento de la recolección

El Campo Calculado de HashData ejecuta una fórmula sobre las respuestas del formulario y entrega promedios, notas de auditoría, índices y conversiones en el momento de la recolección. La regla queda en el formulario, igual para todas las unidades, y nadie necesita rehacer la cuenta en una hoja de cálculo.

Auditoría de buenas prácticas

Pruebe: cambie las respuestas y vea cómo se recalcula la nota.

Uniformes y cofia en uso
Higienización de manos en la entrada
Temperatura de la cámara registrada
Basureros con tapa y pedal

Campo calculado: nota de la auditoría

83%

25 de 30 puntos en 3 ítems evaluados. «No aplica» queda fuera de la cuenta.

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

En resumen

El Campo Calculado es un elemento de los formularios de HashData que ejecuta una fórmula escrita en script sobre las respuestas anteriores y devuelve un número. Calcula promedios, sumas, notas porcentuales, índices de riesgo y conversiones en el momento de la recolección, ignora correctamente las preguntas en blanco y permite encadenar cálculos, como notas por sección seguidas de una nota general.

Por qué calcular dentro del formulario

En muchas operaciones, el formulario digital reemplaza al papel solo al recolectar. La cuenta se sigue haciendo después, en una hoja de cálculo: el promedio de las muestras de peso, la nota de la auditoría, la conversión del consumo en indicador. Cada paso manual abre espacio para errores de fórmula, de copia o de versión, y el resultado aparece días después.

Con el Campo Calculado, la regla de cálculo queda en el propio formulario. Quien recolecta ve el resultado en el momento, y quien analiza recibe el número ya calculado de la misma forma en todas las unidades. Si la regla cambia, se actualiza una sola vez.

Qué respuestas entran en el cálculo

Se puede usar cualquier respuesta con valor numérico. En las preguntas de opción, cada opción recibe un valor, lo que convierte marcas como «Conforme» y «No conforme» en puntos.

Tipo de preguntaValor usado en el cálculo
Número entero, decimal y cantidad con emojisEl número ingresado
Selección única (menú, radio, botones)El valor numérico de la opción elegida
Selección múltiple y ordenamientoLos valores de las opciones marcadas y, en el ordenamiento, la posición de cada ítem
Evaluación (expresiones faciales, emojis)El valor de la nota
Fecha, fecha y hora, tiempoLa fecha o la hora ingresada
Envío de archivosLa cantidad de archivos enviados
Texto, correo y geolocalizaciónTexto, etiquetas y coordenadas, para usar como condición en el cálculo
Otro campo calculadoEl resultado de la fórmula anterior, para encadenar cálculos

Cómo funciona el script

Toda fórmula es una función llamada calculateValue que devuelve un número o vacío (null). La sintaxis es la de JavaScript/TypeScript, y el editor sugiere los nombres de las preguntas y de las funciones con autocompletar (Ctrl+Espacio). Cada pregunta se accede por su nombre de campo dentro del objeto resp.

function calculateValue() {
    return (resp.peso_muestra_1.number
          + resp.peso_muestra_2.number
          + resp.peso_muestra_3.number) / 3;
}

Cálculo por tags

Las tags agrupan preguntas y hacen que la fórmula no dependa de nombres individuales. Marque todas las preguntas de peso con #peso y use una sola función. Si el formulario suma una nueva muestra, la fórmula sigue correcta sin cambios, y las respuestas en blanco no distorsionan el promedio.

function calculateValue() {
    return avgByTag('#peso');
}
FunciónQué hace
avgByTagPromedio de las respuestas numéricas con las tags indicadas, ignorando las vacías
sumByTagSuma de las respuestas numéricas con las tags
countByTagCantidad de respuestas con las tags
maxByTag y minByTagMayor y menor valor entre las respuestas con las tags
findByTagLista de las respuestas con las tags, para cálculos personalizados
allLista de todas las respuestas anteriores al campo
hasContent y isEmptyVerifican si un valor está completo

El Campo Calculado lee las preguntas ubicadas antes de él en el formulario. Por eso, debe ir después de todo lo que usa.

Biblioteca matemática

El script acepta variables intermedias, condiciones, funciones auxiliares (incluso recursivas) y la biblioteca matemática estándar: redondeos (round, floor, ceil, trunc), potencias y raíces (pow, sqrt, cbrt), logaritmos y exponenciales, funciones trigonométricas, max, min, abs y constantes como Math.PI y Math.E.

Ejemplos del día a día

Amplitud entre mediciones

La diferencia entre la mayor y la menor temperatura muestra si el proceso está estable, además del promedio.

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

Índice de riesgo

Probabilidad y severidad son preguntas de selección con valores de 1 a 5; el índice es el producto de las dos.

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

Conversión con factor

El consumo ingresado se convierte en el indicador que la empresa reporta. El factor queda documentado en la propia fórmula.

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

Conteo de evidencias

Las preguntas de envío de archivo valen la cantidad de archivos adjuntos. La suma muestra cuántas fotos reunió la inspección.

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

Casos de uso por sector

SectorCálculoCómo se arma
Industria alimentariaPeso promedio y amplitud de muestrasPreguntas de peso con tag común; promedio, máximo y mínimo por tag
Calidad y auditoríaNota por sección y nota generalOpciones con valor; un campo por sección y un campo final encadenado
Programa 5SPuntuación por S y total del áreaUna tag por S; suma por tag y suma general
Seguridad laboralÍndice de riesgoProbabilidad × severidad a partir de dos selecciones
SostenibilidadConversión del consumo en indicadorConsumo ingresado × factor definido en la fórmula
AgronegocioPromedios y totales por parcela o loteMediciones de campo agregadas por tag
LogísticaVariación de temperatura entre carga y entregaResta entre dos respuestas numéricas
Encuestas y satisfacciónNota promedio de evaluaciónEscalas y expresiones faciales con valor; promedio por tag

Hoja de cálculo después o cálculo en la recolección

SituaciónCalcular en hoja de cálculo despuésCampo Calculado de HashData
Cuándo aparece el resultadoDespués de la exportación y la revisiónEn el momento de la recolección
Regla entre unidadesCada hoja puede tener una versión de la fórmulaUna única fórmula en el formulario
Preguntas en blancoPromedio dividido por el total, con resultado distorsionadoLas funciones por tag ignoran las respuestas vacías
Cambio en la reglaActualizar todas las hojasActualizar el formulario una vez
Auditoría de la cuentaFórmulas dispersas y celdas sobrescritasScript único, comentado, junto al formulario

Buenas prácticas

  • Use nombres de campo claros en las preguntas usadas en fórmulas, como peso_muestra_1.
  • Prefiera funciones por tag en lugar de listas fijas de preguntas.
  • Use avgByTag para promedios, nunca una suma dividida por un número fijo.
  • Devuelva vacío cuando falte un dato, en lugar de cero, para no distorsionar los promedios en los informes.
  • Ubique el campo después de todas las preguntas que usa.
  • Pruebe con la simulación de respuestas antes de publicar, incluidas preguntas salteadas y en blanco.
  • Comente factores y constantes en el propio script, con origen y fecha.

La referencia técnica completa, con todos los atributos y funciones, está en docs.hashdata.app.

Preguntas frecuentes

¿Qué es el Campo Calculado de HashData?

Es un elemento del formulario que ejecuta una fórmula escrita en script sobre las respuestas anteriores y devuelve un número, como un promedio, una nota de auditoría, un índice o una conversión.

¿Necesito saber programar para usarlo?

Las fórmulas simples, como promedios y sumas por tag, caben en una línea. Los cálculos más elaborados usan la sintaxis de JavaScript/TypeScript, y el editor ofrece autocompletar con los nombres de las preguntas y funciones.

¿Qué respuestas pueden entrar en el cálculo?

Números enteros y decimales, cantidad con emojis, selección única y múltiple con valores numéricos, evaluaciones con expresiones faciales o emojis, fechas y horas, y la cantidad de archivos enviados. El script también lee textos, etiquetas de opciones y coordenadas geográficas.

¿Qué pasa si una pregunta queda en blanco?

Las funciones por tag, como avgByTag, ignoran las respuestas vacías, y las funciones hasContent e isEmpty permiten devolver vacío cuando faltan datos. Así, una pregunta salteada no distorsiona el promedio.

¿Un campo calculado puede usar el resultado de otro?

Sí. El resultado de un campo de tipo fórmula queda disponible como valor numérico para los campos ubicados después de él, lo que permite calcular notas por sección y, luego, la nota general.

Vea sus cálculos funcionando en HashData

Le mostramos cómo convertir las hojas de nota, promedio y conversión de su operación en fórmulas dentro del formulario.

Scroll al inicio