Vai al contenuto principale

Formule

I campi Formula nei Copera Boards ti permettono di creare colonne calcolate che derivano i valori automaticamente da altri dati nelle righe. Basati sul Copera Formula Engine --- un linguaggio di formule dedicato con parser e evaluator propri --- puoi costruire di tutto, dalle operazioni aritmetiche semplici alla logica condizionale complessa e ai calcoli sulle date.

Panoramica del linguaggio delle formule

Le formule Copera usano una sintassi simile a quella dei fogli di calcolo. Ogni formula viene valutata per riga, con accesso a tutti i valori di colonna della stessa riga. Il motore di formule supporta:

  • Operatori aritmetici: +, -, *, / per le operazioni matematiche
  • Concatenazione di stringhe: & per unire valori di testo
  • Operatori di confronto: =, !=, >, <, >=, <=
  • Operatori logici: AND, OR, NOT per combinare condizioni
  • Riferimenti a campi: Fai riferimento ad altre colonne racchiudendo il nome della colonna tra parentesi graffe, ad es. {Column Name}
  • Funzioni annidate: Le funzioni possono essere usate come argomenti di altre funzioni

Sintassi di base

{Price} * {Quantity}

Questa formula moltiplica il valore della colonna "Price" per la colonna "Quantity" per ogni riga.

IF({Status} = "Done", "Complete", "Pending")

Questa formula restituisce "Complete" quando la colonna Status è uguale a "Done", e "Pending" altrimenti.

Riferimento alle funzioni

Il Copera Formula Engine fornisce oltre 100 funzioni organizzate nelle seguenti categorie. Di seguito un riferimento alle funzioni più usate.

Funzioni matematiche

FunzioneDescrizioneEsempio
ABS(number)Valore assolutoABS({Balance})
CEIL(number)Arrotonda per eccesso all'intero più vicinoCEIL({Score} / 10)
FLOOR(number)Arrotonda per difetto all'intero più vicinoFLOOR({Price})
ROUND(number, decimals)Arrotonda al numero di decimali specificatoROUND({Average}, 2)
MIN(a, b, ...)Valore più piccoloMIN({Estimate}, {Budget})
MAX(a, b, ...)Valore più grandeMAX({Score1}, {Score2})
SUM(a, b, ...)Somma dei valoriSUM({Q1}, {Q2}, {Q3}, {Q4})
AVERAGE(a, b, ...)Media aritmeticaAVERAGE({Test1}, {Test2})
MOD(number, divisor)Resto della divisioneMOD({Row Number}, 2)
POWER(base, exponent)Elevamento a potenzaPOWER({Side}, 2)
SQRT(number)Radice quadrataSQRT({Area})

Funzioni di testo

FunzioneDescrizioneEsempio
CONCAT(a, b, ...)Unisce valori di testoCONCAT({First Name}, " ", {Last Name})
LEFT(text, count)Estrae dall'inizioLEFT({Code}, 3)
RIGHT(text, count)Estrae dalla fineRIGHT({Phone}, 4)
MID(text, start, count)Estrae dal centroMID({ID}, 2, 4)
LEN(text)Conteggio caratteriLEN({Description})
LOWER(text)Converte in minuscoloLOWER({Email})
UPPER(text)Converte in maiuscoloUPPER({Code})
TRIM(text)Rimuove spazi iniziali/finaliTRIM({Input})
REPLACE(text, old, new)Sostituisce le occorrenzeREPLACE({URL}, "http", "https")
SEARCH(find, text)Trova la posizione di una sottostringaSEARCH("@", {Email})

Funzioni sulle date

Il motore di formule si integra con un'ampia libreria date, dandoti accesso a potenti funzioni di manipolazione e confronto.

FunzioneDescrizioneEsempio
TODAY()Data correnteTODAY()
NOW()Data e ora correntiNOW()
YEAR(date)Estrae l'annoYEAR({Created})
MONTH(date)Estrae il mese (1-12)MONTH({Due Date})
DAY(date)Estrae il giorno del meseDAY({Birthday})
WEEKDAY(date)Giorno della settimana (0-6)WEEKDAY({Start Date})
WEEKNUM(date)Numero di settimana dell'annoWEEKNUM({Created})
QUARTER(date)Trimestre (1-4)QUARTER({Close Date})
DATEADD(date, count, unit)Aggiunge tempo a una dataDATEADD({Start}, 14, "days")
DATEDIFF(date1, date2, unit)Differenza tra dateDATEDIFF({Start}, {End}, "days")
IS_BEFORE(date1, date2)Verifica se date1 è prima di date2IS_BEFORE({Due Date}, TODAY())
IS_AFTER(date1, date2)Verifica se date1 è dopo date2IS_AFTER({Due Date}, TODAY())
IS_SAME_DAY(date1, date2)Verifica se è lo stesso giornoIS_SAME_DAY({Created}, TODAY())
IS_TODAY(date)Verifica se la data è oggiIS_TODAY({Due Date})
IS_WEEKEND(date)Verifica se la data cade nel weekendIS_WEEKEND({Delivery Date})
START_OF_MONTH(date)Primo giorno del meseSTART_OF_MONTH({Date})
END_OF_MONTH(date)Ultimo giorno del meseEND_OF_MONTH({Date})
START_OF_WEEK(date)Primo giorno della settimanaSTART_OF_WEEK({Date})
END_OF_WEEK(date)Ultimo giorno della settimanaEND_OF_WEEK({Date})
ADD_BUSINESS_DAYS(date, days)Aggiunge solo giorni lavorativiADD_BUSINESS_DAYS({Start}, 5)
DIFF_BUSINESS_DAYS(d1, d2)Giorni lavorativi tra le dateDIFF_BUSINESS_DAYS({Start}, {End})

Funzioni logiche

FunzioneDescrizioneEsempio
IF(condition, then, else)Valore condizionaleIF({Amount} > 1000, "High", "Low")
SWITCH(expr, val1, result1, ...)Confronta con più valoriSWITCH({Priority}, "P0", "Critical", "P1", "High", "Normal")
AND(a, b, ...)Vero se tutte le condizioni sono vereAND({Complete}, {Approved})
OR(a, b, ...)Vero se almeno una condizione è veraOR({Urgent}, {Overdue})
NOT(value)Inverte un booleanoNOT({Archived})
ISBLANK(value)Verifica se è vuotoISBLANK({Notes})

Esempi comuni di formule

Concatenare i nomi

CONCAT({First Name}, " ", {Last Name})

Combina le colonne nome e cognome con uno spazio in mezzo.

Calcolare i giorni alla scadenza

DATEDIFF(TODAY(), {Due Date}, "days")

Restituisce il numero di giorni rimanenti fino alla data di scadenza. I valori negativi indicano elementi in ritardo.

Etichette di stato condizionali

IF(IS_BEFORE({Due Date}, TODAY()), "Overdue",
IF(DATEDIFF(TODAY(), {Due Date}, "days") <= 3, "Due Soon", "On Track"))

Restituisce "Overdue" per gli elementi scaduti, "Due Soon" per quelli in scadenza entro 3 giorni e "On Track" per tutto il resto.

Calcolo della percentuale

ROUND({Completed Tasks} / {Total Tasks} * 100, 1)

Calcola la percentuale di completamento arrotondato a una cifra decimale.

Giorni lavorativi rimanenti

DIFF_BUSINESS_DAYS(TODAY(), {Deadline})

Calcola il numero di giorni lavorativi (esclusi i weekend) tra oggi e una scadenza.

Gestione degli errori

Quando una formula contiene errori, Copera mostra un indicatore di errore nella cella al posto di un valore. Gli errori comuni includono:

  • Errori di sintassi --- Parentesi non corrispondenti, operatori mancanti o nomi di funzione non riconosciuti.
  • Incompatibilità di tipo --- Tentativo di eseguire aritmetica su valori di testo o operazioni sulle date su numeri.
  • Riferimenti null --- Riferimento a una colonna che non ha valore nella riga corrente. Usa ISBLANK() per gestire con eleganza i campi opzionali.
  • Divisione per zero --- Divisione per una colonna che contiene zero. Avvolgi con un IF per controllare: IF({Total} = 0, 0, {Part} / {Total}).

L'editor delle formule mostra un'anteprima live del risultato mentre digiti, così è facile individuare e correggere gli errori prima di salvare.

Creazione di formule assistita dall'AI

Se non sei sicuro di come scrivere una formula, Copera offre un assistente formule basato su AI. Descrivi cosa vuoi calcolare in linguaggio naturale e l'assistente genererà una formula per te. Puoi rivedere, modificare e affinare il suggerimento prima di applicarlo alla colonna.

Prossimi passi

  • Scopri i Campi calcolati per approfondire i campi Formula, Function e Tracker.
  • Configura Automazioni che si attivano in base ai risultati delle formule.
  • Usa Filtri e ordinamento per filtrare le righe in base ai valori delle colonne formula.