DATA.VALORE
Iniziamo tranquilli con la funzione DATA.VALORE, chiamata in inglese DATEVALUE. A che cavolo serve, direte voi? In pratica, questa funzione converte una data che sia memorizzata come testo in un numero seriale che Excel comprende come data.
Sapete (spero) che per Excel le date corrispondono al numero di giorni passati da una determinata data (ne ho parlato nel capitolo 09 del primo Manabile, non intendo ritornarci adesso) ed è quindi quel numero di giorni il vero contenuto della cella. Es: la data 31/05/2020 corrisponde al numero seriale 43.982.
Facciamo subito un esempio pratico: in tre celle diverse (A2, B2 e C2) scrivo giorno, mese e anno correnti. In una quarta cella (nell’esempio sarà la B5) potrei inserire una funzione che concateni i valori delle tre celle nel corretto ordine (essendo in Italia userò la sequenza giorno/mese/anno) e che converta direttamente il risultato in un numero seriale utilizzabile poi, magari, per ulteriori calcoli.
Ecco che magicamente il contenuto delle tre celle ha partorito un numero seriale da una concatenazione di testo. Nella cella B5 ho inserito questo:
=DATA.VALORE(A2&”/”&B2&”/”&C2)
Mi pare abbastanza semplice, non credo che abbia bisogno di ulteriori spiegazioni.
Sappiate che la DATA.VALORE funziona perfettamente sia su OpenOffice Calc sia su Libre Office Calc.
GIORNO.SETTIMANA
Passiamo adesso alla seconda funzione di data che dobbiamo trattare: GIORNO.SETTIMANA (in inglese WEEKDAY). In pratica questa funzione serve a estrarre il giorno della settimana da una determinata data, sotto forma di numero da 1 a 7. A seconda degli argomenti impostati, l’accoppiata tra questo numero e il giorno della settimana potrà variare. Intanto vediamo la sintassi, poi vedrò di chiarire la cosa con un paio di esempi pratici.
=GIORNO.SETTIMANA(num_seriale;[tipo_restituito])
Come risulta lampante, la funzione in questione accetta due argomenti, uno dei quali facoltativo. Il primo dei due (in genere denominato num_seriale) non è altro che la data dalla quale vogliamo estrarre il giorno della settimana, nella quasi totalità dei casi sarà la cella che contiene tale data.
Il secondo argomento determina invece quale numero verrà assegnato a ogni giorno della settimana, in base a una serie di opzioni disponibili: 1, 2, 3, 11, 12, 13, 14, 15, 16, 17, 18, 19 e 20. Senza voler entrare troppo nel dettaglio: 1 è il valore di default (dato che si tratta di un argomento facoltativo è ciò che verrà quindi usato se non lo imposti in modo diverso) e assegna i numeri da 1 a 7 partendo dalla domenica e finendo col sabato. Se lo imposti a 2, invece, assegna i numeri da 1 a 7 partendo dal lunedì e finendo con la domenica. Ci sono altre otto opzioni ma non ho la minima intenzione di descriverle tutte, avete capito come funziona.
Vediamo adesso questa funzione in azione.
Nell’esempio dell’immagine ho inserito in B1 la funzione =OGGI() e nella C1 la funzione per estrarre il giorno della settimana:
=GIORNO.SETTIMANA(B1;2)
Ovviamente, i due argomenti sono B1 (ovvero la cella che contiene la data da analizzare) e 2 (che assegna il numero 1 al lunedì, il numero 2 al martedì e così via). Essendo oggi lunedì primo giugno 2020 tutto funziona a meraviglia.
Come fare a trasformare questi numeri ottenuti con la GIORNO.SETTIMANA in “lunedì”, “martedì” etc. dovrebbe essere per voi un gioco da ragazzi, visto che nel capitolo precedente abbiamo parlato della funzione TESTO: potete inserire in una cella una funzione tipo: =TESTO(C1;”gggg”) e risolverete il problema. Giusto una precisazione: con la funzione TESTO la domenica corrisponderà sempre al numero 1, il lunedì al 2 e così via; se avete usato un codice diverso da 1 come argomento della GIORNO.SETTIMANA, fate attenzione a far tornare correttamente il risultato, per esempio nel caso specifico dell’immagine avrei dovuto inserire =TESTO(C1+1;”gggg”) perché avevo usato 2 come argomento.
Anche in questo caso, il funzionamento non cambia per niente sia su OpenOffice Calc sia su Libre Office Calc.
FINE.MESE
Parliamo adesso della funzione FINE.MESE che in inglese si chiama EOMONTH. Tecnicamente questa funzione “restituisce il numero seriale dell’ultimo giorno del mese precedente o successivo di un numero specificato di mesi”. Gli argomenti accettati sono due, entrambi obbligatori. Ecco la sintassi:
=FINE.MESE(Data_iniziale;Mesi)
Data_iniziale definisce la data a partire dalla quale iniziare a contare mentre Mesi è il numero di mesi che devono essere aggiunti (può essere un valore positivo o negativo). Detto così non ci si capisce un tubo quindi sarà bene fare subito un esempio pratico.
Ho un insieme di fatture emesse a diversi clienti, tali fatture hanno caratteristiche diverse: alcune devono essere pagate subito, altre a fine mese, altre ancora alla fine del mese successivo o ancora peggio: i famigerati 30 gg FM, 60 gg FM, 90 gg FM.
Nella colonna D l’utente mette una X se la fattura deve essere pagata a fine mese data fattura. Nella colonna E invece mette il numero di mesi eventuali da aggiungere. Assodato che nella colonna G c’è solo una serie di sottrazioni con una formattazione condizionale (per esempio in G4 c’è scritto =F4-C$1), vediamo il contenuto della colonna F che ci interessa particolarmente in questo caso. In F4 c’è scritto:
=SE(D4=”X”;FINE.MESE(C4;E4);C4)
Leggiamola insieme. Funzione logica SE il cui test verifica se in D4 è stato inserito o meno il segno X: se è presente significa che il pagamento è a fine mese e quindi troviamo la FINE.MESE con i due argomenti (C4 come data iniziale ed E4 come numero di mesi da aggiungere), se invece non è presente la data scritta in C4 rimane invariata. Per esempio: la data in C5 resta uguale in F5 perché D5 è vuota mentre la data in C7 viene ricalcolata a causa della X in D7; dal 10 dicembre 2020 dovremmo andare a fine mese quindi 31 dicembre 2020 ma, visto che in E7 c’è scritto 2, dobbiamo aggiungere due mesi e la data prevista finale diventa il 28 febbraio 2021.
Il funzionamento è identico anche su Calc, sia su OpenOffice sia su Libre Office.
Con le funzioni di data ci rivediamo la prossima volta.
Tratto da “Manabile Semiserio di Excel – Parte Seconda per utenti bravini“
Qui il link per acquistare il libro su Amazon