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.