università degli studi di brescia elementi di informatica ... · docente: marco sechi ‐elementi...

89
Docente: Marco Sechi ‐ Elementi di informatica e programmazione – Università degli studi di Brescia D.I.M.I ‐ A.A. 2017/2018 Dipartimento di Ingegneria Meccanica e Industriale Dipartimento di Ingegneria Meccanica e Industriale Corso di laurea: Ingegneria Gestionale Elementi di informatica e programmazione Elementi di Informatica e Programmazione Docente: Marco Sechi E‐mail: [email protected] Università degli Studi di Brescia EXCEL EXCEL Vers. 13/09/2016.B090917*

Upload: doanbao

Post on 10-Aug-2018

246 views

Category:

Documents


1 download

TRANSCRIPT

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le

Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

leCo

rso di laurea

: Ing

egne

ria Gestio

nale

Elem

enti di inform

atica e prog

rammazione

Elementi di Informatica e Programmazione

Docente: Marco SechiE‐mail: [email protected]

Università degli Studi di Brescia

EXCELEXCEL

Vers. 13/09/2016.B090917*

2Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Funzioni principali in EXCEL/CALC

https://support.office.com/it‐it/article/Funzioni‐di‐Excel‐in‐ordine‐alfabetico‐b3944572‐255d‐4efb‐bb96‐c6d90033e188?NS=EXCEL&Version=16&SysLcid=1040&UiLcid=1040&AppVer=ZXL160&HelpId=154468&ui=it‐IT&rs=it‐IT&ad=IT 

3Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Le funzioni disponibili in EXCEL/CALC sono utilizzate all'interno delle celle per costruire le formule. Una formula si riconosce perchè inizia con =

La sintassi generica di una funzione è la seguente

= NOMEFUNZIONE(Argomento1, Argomento2, … [ArgomentoN])

Quando nella notazione relativa alla sintassi di una funzione un elemento  appare racchiuso tra [] questo è facoltativo (ad esempio l'argomentoN).

Si rammenta che gli argomenti possono essere delle costanti (12, "Ciao" …) oppure dei riferimenti a celle singole o gruppi:A1,B2:C9, 'Esiti Esame'!B5, '[Sessione2014.xlsx]Esiti Esame'!$A$2. 

oppure altre funzioniANNO(ADESSO()), SINISTRA(DESTRA(TESTO(OGGI();"AAAA");2);1),…

4Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

RESTO, SOMMA, MEDIA, MIN, MAX, PICCOLO, GRANDE, CONTA.SE, SOMMA.SE, CONTA.PIU.SE, CONTA.VALORI, CONTA.NUMERI, CONTA.VUOTE, RADQ, CASUALE, CASUALE.TRA, DEV.ST.P, DEV.ST.C, VAR.P, VAR.C, RANGO, ASS

Funzioni esercitazione 1

VALORE, ARROTONDA, FISSO, TRONCA, INT, ORARIO.VALORE, DATA.VALORE, TESTO

AMBIENTE.INFO, INDICE, INDIRETTO, CELLA, INDIRIZZO

OGGI, ADESSO, ANNO, MESE, GIORNO, GIORNO.SETTIMANA, ORA, MINUTO, SECONDO

CONCATENA,CODICE, CODICE.CARATT, SINISTRA, DESTRA, LUNGHEZZA, STRINGA.ESTRAI,TROVA, RICERCA, ANNULLA.SPAZI, MAIUSC, MINUSC, RIPETI, SOSTITUISCI

MATRICE.PRODOTTO, MATR.SOMMA.PRODOTTO, MATR.INVERSA, MATR.DETERMINANTE, MATR.TRASPOSTA

BINARIO.DECIMALE, BINARIO.HEX, HEX.DECIMALE, HEX.BINARIO, DECIMALE.BINARIO, DECIMALE.HEX, BIT.SPOSTA.DX, BIT.SPOSTA.SX

SE, E, O, VAL.VUOTO, VAL.NUMERO, VAL.TESTO, VAL.ERRORE, VAL.ERR, VAL.NONDISP, SE.ERRORE

CERCA.VERT, CERCA.ORIZZ., CONFRONTA, CERCA, SCEGLI

5Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

RESTO, SOMMA, MEDIA, MIN, MAX, PICCOLO, GRANDE, CONTA.SE, SOMMA.SE, CONTA.PIU.SE, CONTA.VALORI, CONTA.NUMERI, CONTA.VUOTE, RADQ, CASUALE, CASUALE.TRA, DEV.ST.P, DEV.ST.C, VAR.P, VAR.C, RANGO, ASS

Funzioni esercitazione 2

VALORE, ARROTONDA, FISSO, TRONCA, INT, ORARIO.VALORE, DATA.VALORE, TESTO

AMBIENTE.INFO, INDICE, INDIRETTO, CELLA, INDIRIZZO

OGGI, ADESSO, ANNO, MESE, GIORNO, GIORNO.SETTIMANA, ORA, MINUTO, SECONDO

CONCATENA,CODICE, CODICE.CARATT, SINISTRA, DESTRA, LUNGHEZZA, STRINGA.ESTRAI,TROVA, RICERCA, ANNULLA.SPAZI, MAIUSC, MINUSC, RIPETI, SOSTITUISCI

MATRICE.PRODOTTO, MATR.SOMMA.PRODOTTO, MATR.INVERSA, MATR.DETERMINANTE, MATR.TRASPOSTA

BINARIO.DECIMALE, BINARIO.HEX, HEX.DECIMALE, HEX.BINARIO, DECIMALE.BINARIO, DECIMALE.HEX, BIT.SPOSTA.DX, BIT.SPOSTA.SX

SE, E, O, VAL.VUOTO, VAL.NUMERO, VAL.TESTO, VAL.ERRORE, VAL.ERR, VAL.NONDISP, SE.ERRORE

CERCA.VERT, CERCA.ORIZZ., CONFRONTA, CERCA, SCEGLI

6Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

RESTO, SOMMA, MEDIA, MIN, MAX, PICCOLO, GRANDE, CONTA.SE, SOMMA.SE, CONTA.PIU.SE, CONTA.VALORI, CONTA.NUMERI, CONTA.VUOTE, RADQ, CASUALE, CASUALE.TRA, DEV.ST.P, DEV.ST.C, VAR.P, VAR.C, RANGO, ASS

Statistico/Matematiche

=RESTO(Dividendo;Divisore)La funzione RESTO restituisce il resto della divisione intera tra il primo argomento (DIVIDENDO) e il secondo (DIVISORE). Se il secondo argomento è zero la funzione restituisce il codice di errore #DIV/0!.

=RESTO(17;10) ==> resto della divisione intera tra 17 e10 quindi 7

=RESTO(10;0) ==>  #DIV/0! (in Scalc #Valore!)

=RADQ(Numero)La funzione RADQ restituisce la radice quadrata del NUMERO passato come argomento. La radice quadrata di un numero negativo determina il seguente errore: 

=RAQ(-25) ==> #NUM! (in Scalc Err:502 – argomento nonvalido)

7Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=SOMMA(argomento1[;argomento2;...])La funzione SOMMA calcola la somma dei soli valori numerici contenuti nelle celle indicate negli argomenti. Eventuali dati non numerici (stringhe, valori booleani, date) presenti nelle celle indicate dagli argomenti verranno ignorati.

=SOMMA(1;A1;B2:B4) ==> somma i valori dell'area B2:B4 conquello di A1 più la costante 1

=SOMMA(A1:B20 A3:C6) ==> Somma i valori dell'intersezionetra A1:B20 e A3:B6 (solo per Excel)

La funzione SOMMA in Excel 2016 ammette al massimo 255 argomenti (30 in scalc). In scalc i valori booleani VERO e FALSO vengono trasformati rispettivamente in 1 e 0 pertanto la somma di 5 celle contenenti la costante VERO restituisce 5.

=MEDIA(argomento1[;argomento2;...])La funzione MEDIA calcola la media dei soli valori numerici contenuti nelle celle indicate negli argomenti. La media di un'area priva di valori numerici restituisce #DIV/0! (anche in scalc!). La media viene calcolata solo sulle celle che contengono realmente numeri.

=MEDIA(A1;B2:B4) ==> media dei valori nell'area B2:B4 e A1=MEDIA(A1:B20 A3:C6) ==> Media dei valori nell'intersezione

tra A1:B20 e A3:B6 (solo per Excel)

La funzione MEDIA in Excel 2016 ammette al massimo 255 argomenti (30 in scalc).

8Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=GRANDE(Matrice;N)=PICCOLO(Matrice;N)La funzione GRANDE / PICCOLO estrae l'N‐esimo valore più grande / piccolo della sequenza di valori contenuti nell'area MATRICE. Se nell'area MATRICE non sono definiti almeno N valori numerici la funzione restituisce l'errore #NUM! ( #VALORE! in scalc). 

=GRANDE(A1:A10;1) ==> valore + grande nell'area A1:A10=GRANDE(A1:A10;10) ==> valore + piccolo nell'area A1:A10=PICCOLO(A1:A10;1) ==> valore + piccolo nell'area A1:A10=PICCOLO(A1:A10;10) ==> valore + grande nell'area A1:A10=PICCOLO(A1:A10;10) ==> #NUM!

=CONTA.SE(MatriceDati;Relazione)La funzione CONTA.SE conta i dati presenti dell'area MATRICEDATI che soddisfano la relazione indicata in RELAZIONE

=CONTA.SE(C1:C3;"=X") ==> Conta le celle di C1:C3 checontengono il carattere "X" (ilconfronto non è case sensitive)

=CONTA.SE(C1:C3;"X") ==> identico a sopra=CONTA.SE(C1:C3;">10") ==> conta i valori maggiori di 10

9Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=SOMMA.SE(MatriceDati;Relazione;[MatriceSomma])

La funzione SOMMA.SE somma i dati dell'area MATRICESOMMA che occupano la medesima posizione di quelli della MATRICEDATI che soddisfano la relazione indicata in RELAZIONE. Il confronto non è case sensitive.

Se l'argomento MATRICESOMMA non è presente allora SOMMA.SE restituisce la somma dei valori di MATRICEDATI che soddisfano la condizione indicata in RELAZIONE.

=SOMMA.SE(A1:C3;"=X";E1:G3) ==> Somma i valori in E1:G3 chesi trovano nella stessa posizione delle celle di A1:C3 contenenti il carattere "X"=SOMMA.SE(A1:C3;"X";E1:G3) ==> come sopra

=SOMMA.SE(E1:G3;">10") ==> somma i valori in E1:G3 maggioridi 10

10Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=CONTA.PIU.SE(MatriceDati1;Relazione1[;MatriceDati2;Relazione2;...])

La funzione CONTA.PIU.SE conta le celle che occupano la medesima posizione nelle aree MatriceDati1, MatriceDati2, ... e che soddisfano tutte le relazioni indicate in Relazione1, Relazione2, ... . Ogni area MatriceDatii deve avere lo stesso numero di righe e colonne. Non è comunque necessario che le aree siano adiacenti.Quindi se tutte le 1° celle delle aree MatriceDatii soddisfano il criterio associato Relazionei allora il risultato restituito dalla funzione viene incrementato di uno altrimenti no. Ripeto lo stesso procedimento anche per le 2° celle, le 3° celle e così via finché non sono state valutate tutte le celle delle aree MatriceDatii. In scalc 4.1 questa funzione non esiste.

=CONTA.PIÙ.SE(A1:A5;"X";C1:C5;"Y") ==> Conta le righe da 1 a 5 che hanno nella colonna A il valore "X" e contem-poraneamente "Y" nella colonna C.=CONTA.PIU.SE(A1:B4;"<100";D2:E5;">20";G3:H6;"X")==> Conta le posizioni corrispondenti delle 3 aree i cuivalori risultano contempora-neamente <100 nella 1° area, >20 nella 2° e pari a "X" nella 3°.

11Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=CONTA.VALORI(Area1[,Area2,…,Area255])La funzione CONTA.VALORI conta il numero di celle non vuote nelle aree Areai. Le celle contenenti formule (anche ="") vengono considerate non vuote indipendentemente dal risultato restituito. Excel 2016 ammette 255 argomenti mentre scalc 30.

=CONTA.VALORI(A1:B3) ==> numero celle non vuote

=CONTA.NUMERI(Area1[,Area2,…,Area255])La funzione CONTA.NUMERI conta i numeri presenti nelle aree Areai. Le celle contenenti formule che restituiscono numeri e che non determinano situazioni di errore vengono conteggiate. In scalc gli argomenti sono 30.

=CONTA.NUMERI(A1:B3) ==> nr celle con valori numerici

=CONTA.VUOTE(Area1[,Area2,…,Area255])La funzione CONTA.VUOTE conta le celle prive di contenuti nelle aree Areai. Le celle contenenti formule che restituiscono la stringa vuota ("") e che non determinano situazioni di errore vengono comunque conteggiate.

=CONTA.VUOTE(A1:B3) ==> nr celle senza contenuto o con="" (solo excel!)

12Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=DEV.ST.P(argomento1[;argomento2;...])=DEV.ST.C(argomento1[;argomento2;...])=VAR.P(argomento1[;argomento2;...])=VAR.C(argomento1[;argomento2;...])La funzione DEV.ST.P calcola la deviazione standard o scarto quadratico medio della sequenza di valori numerici passata come argomenti. La deviazione standard di un'area priva di valori restituisce l'errore #DIV/0!.

=DEV.ST.P(A1;B2:B4) ==> scarto quadratico medio dei valoriin B2:B4 e A1

La funzione DEV.ST.P in Excel 2016 ammette al massimo 254 argomenti. In scalc e nelle versioni precedenti ad Excel 2010 la funzione ha un altro nome: DEV.ST.POP. In scalc il numero di argomenti ammesso è 30.La formula della deviazione standard è la seguente:

dove M è la media dei valori Xi e N la numerosità della sequenza X={Xi | i= 1 ... N}.

13Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

La deviazione standard restituisce una stima della variabilità dei valori Xidella sequenza rispetto alla loro media aritmetica M. Maggiore è il valore della deviazione standard maggiori sono le variazioni dei valori rispetto alla media. Quindi una sequenza composta sempre dallo stesso valore (sequenza costante) avrà una deviazione standard nulla poiché la distanza di ogni singolo valore dalla media è nulla. 

Altre funzioni statistiche collegate a Dev.St.P disponibili in Excel (che ammettono al massimo 254 argomenti) sono:

Dev.St.C che restituisce la deviazione standard corretta. Nelle versioni precedenti alla 2010 aveva il nome Dev.St. Lo stesso nome è usato attualmente da scalc.

Var.P che restituisce la varianza (il quadrato di Dev.St.P). In scalc e nelle versioni precedenti alla 2010 ha un nome differente: Var.Pop. La formula utilizzata per il calcolo della varianza è quindi la seguente:

Var.C che restituisce la varianza corretta (il quadrato di Dev.St.C). In scalc e nelle versioni precedenti alla 2010 ha un nome differente: Var.

1

14Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Tutti è 4 gli arcieri hanno la medesima media ma la variabilità nei tiri effettuati è decisamente differente. 

APPR

OFO

NDIM

ENTI Immaginiamo di avere 4 

arcieri che abbiano conseguito i seguenti punteggi. 

Se raffiguro i risultati di ogni singoli tiro, rispetto alla media, ottengo le seguenti rappresentazioni:

15Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

I grafici evidenziano i diversi comportamenti delle singole sequenze di tiro. La media pone tutti gli arcieri allo stesso livello mentre una rilevante deviazione standard manifesta una certa imprevedibilità del punteggio ad ogni singolo tiro.

Maggiore è la variabilità di un fenomeno minore è il grado di prevedibilità. Diventa quindi importante avere un indicatore che misuri lo scostamento medio della sequenza rispetto ad un indice di posizione come la media.

La distanza media dei valori Xi della sequenza X rispetto alla loro media aritmetica M può essere considerato un indice che misura il grado di variabilità della sequenza.

In realtà in statistica la variabilità viene valutata mediante indicatori similari ed esattamente quelli citati: 

16Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=RANGO.UG(Num;Area[;TipoOrdine])La funzione RANGO.UG restituisce il numero associato alla posizione di NUM all'interno dell'elenco dei numeri, riordinato secondo il parametro TIPOORDINE, prelevati dai contenuti in AREA. Rappresenta quindi la classifica di NUM rispetto agli altri valori della serie. I valori che non sono numerici vengono ignorati. TIPOORDINE pari a 1 indica un ordinamento crescente, zero (che è il default) decrescente.

Se il valore NUM non è presente in AREA la funzione restituisce l'errore #N/D. 

Nella versione Excel 2010 il nome della funzione era RANGO. La funzione RANGO è comunque ancora disponibile nella versione di Excel 2016 per ragione di compatibilità. Anche in scalc la funzione si chiama RANGO. Nel caso il valore NUM non esista in AREAscalc restituisce l'errore #VALORE!.

17Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Esiste anche la funzione RANGO.MEDIA(Num;Area[;TipoOrdine]). Restituisce il numero associato alla posizione di NUM all'interno dell'elenco dei numeri (riordinato secondo il parametro TIPOORDINE) prelevati dai contenuti in AREA. Se NUM è presente più volte in AREA allora RANGO.MEDIA restituisce la media delle sue posizioni in elenco.

=MIN(argomento1[;argomento2;...])=MAX(argomento1[;argomento2;...])La funzione MIN restituisce il valore minimo tra i valori numerici contenuti nelle aree indicate come argomenti. La funzione MAX restituisce il valore massimo. Eventuali stringhe presenti nelle celle associate agli argomenti verranno ignorate. La statistica viene prodotta solo per le celle che contengono realmente numeri!

=MIN(B2:B4) ==> minimo dei valori nell'area B2:B4=MAX(B2:B4) ==> massimo dei valori nell'area B2:B4

Queste funzioni in Excel 2016 ammettono al massimo 255 argomenti (30 in scalc).

18Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=CASUALE()La funzione CASUALE restituisce un numero reale casuale distribuito in maniera uniforme nell'intervallo [0,1). Un nuovo numero casuale viene restituito quando il foglio viene ricalcolato (tasto F9 sia in Excel/scalc, Ctrl+ in Mac). Per generare un numero reale nell'intervallo [A,B) basta applicare la seguente formula:

=CASUALE()*(B-A)+A ==> Genero un valore reale in [A,B)

=CASUALE.TRA(InteroDa;InteroA)La funzione CASUALE.TRA restituisce un numero casuale intero compreso tra il primo e il secondo argomento (inclusi!). Un nuovo numero casuale viene restituito quando il foglio viene ricalcolato (basta premere il tasto F9 sia in Excel/OOCalc, Ctrl+ in Mac). 

=CASUALE.TRA(1;100) ==> Genera un valore casuale tra 1 e100 compresi

=CASUALE.TRA(1;CASUALE.TRA(1;2)) ==> Genera un valore casuale compreso tra 1 e 2 ma

l'1 ha una probabilità di uscita pari a 75%mentre il 2 del 25%

19Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=ASS(Numero)La funzione ASS restituisce il valore assoluto del valore numerico passato come parametro. 

=ASS(-100) ==> 100=ASS(100) ==> 100=ASS("Ciao") ==> #VALORE!

20Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Manipolazione stringheCONCATENA,CODICE, CODICE.CARATT, SINISTRA, DESTRA, LUNGHEZZA, STRINGA.ESTRAI,TROVA, RICERCA, ANNULLA.SPAZI, MAIUSC, MINUSC, RIPETI, SOSTITUISCI

=STRINGA.ESTRAI(Argomento; I; N)La funzione STRINGA.ESTRAI restituisce, partendo dall'i‐esimo carattere compreso, N caratteri presi dalla stringa ARGOMENTO passata come 1° argomento.

=STRINGA.ESTRAI("Questa è una frase";3;8) ==> "esta è u"

I tre argomenti sono obbligatori. i deve avere un valore maggiore di 0 altrimenti nella cella contenente la formula verrà Excel visualizza l'errore #VALORE! (ERR:502 in OOCalc).

=STRINGA.ESTRAI("Questa è una frase";10;3) ==> "una"=STRINGA.ESTRAI(F28;LUNGHEZZA(F28);1) ==> =DESTRA(F28)=STRINGA.ESTRAI("Questa è una frase";3;1) ==> "e": il terzo

carattereAttenzione: La posizione di un carattere in una stringa va calcolata tenendo presente che la numerazione parte da 1 e non da 0 come solitamente avviene in altri linguaggi di programmazione.

21Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=CONCATENA(Stringa1[;Stringa2;...;Stringa30;...])

La funzione CONCATENA unisce diversi argomenti in un'unica stringa. E' possibile utilizzare l'operatore & in alternativa.

=CONCATENA("Ciao";" ";"Marco") ==> "Ciao Marco"="Ciao" & " " & "Marco" ==> "Ciao Marco"=CONCATENA(A1;A2) ==> "Ave Students" se in A1 ho "Ave "

e in A2 ho "Students"La funzione CONCATENA in Excel 2016 ammette al massimo 255 argomenti (30 in scalc).

=CODICE(Argomento)La funzione CODICE restituisce il codice ascii del primo carattere della stringa passata come ARGOMENTO. 

=CODICE("A") ==> 65=CODICE("AVE") ==> 65=CODICE("a") ==> 97=CODICE(1) ==> 49=CODICE("1") ==> 49=CODICE(A1) ==> 67 se nella cella A1 ho il valore "Ciao"

22Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=CODICE.CARATT(Argomento)La funzione CODICE.CARATT restituisce il carattere il cui codice ascii è passato come ARGOMENTO.

=CODICE.CARATT(97) ==> "a"=CODICE.CARATT(65) ==> "A"

L'intervallo dei valori ammessi come ARGOMENTO va da 1 a 255. Se digito un valore esterno a questo intervallo Excel restituisce il codice di errore: #VALORE! (ERR:502 in scalc). 

=MAIUSC(Argomento)=MINUSC(Argomento) MAIUSC restituisce la stringa ARGOMENTO in maiuscolo. MINUSC restituisce la stringa ARGOMENTO in minuscolo. Esempio: combinando alcune delle funzioni viste possiamo trasformare il contenuto di una cella in modo che venga scritto tutto in minuscolo ad esclusione della prima lettera viene scritta in maiuscolo (tipico nei nomi propri). Supponiamo che in A1 ci sia: "mArCo"

=MAIUSC(SINISTRA(A1)) & MINUSC(DESTRA(A1;LUNGHEZZA(A1)-1)) ==>"Marco"In realtà esiste una funzione (anche in scalc) che fa la stessa cosa: MAIUSC.INIZ

23Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=SINISTRA(Argomento; [N])La funzione SINISTRA ha 2 argomenti. L'argomento N è facoltativo. La funzione SINISTRA restituisce i primi N caratteri della stringa ARGOMENTO. Quando N è omesso estrae solo il primo carattere di ARGOMENTO.

=SINISTRA("Questa è una frase";4) ==> "Ques"=SINISTRA("Questa è una frase") ==> "Q"=SINISTRA(A1;3) ==> "PIP" se nella cella A1 ho "PIPPO"

=DESTRA(Argomento; N)La funzione DESTRA ha 2 argomenti. L'argomento N è facoltativo. La funzione DESTRA restituisce gli ultimi N caratteri della stringa ARGOMENTO. Quando N è omesso estrae l'ultimo carattere di Argomento.

=DESTRA("Questa è una frase";4) ==> "rase"=DESTRA("Questa è una frase") ==> "e"

=LUNGHEZZA(Argomento)La funzione LUNGHEZZA restituisce il numero di caratteri contenuti nella stringa passata come argomento (spazi compresi).

=LUNGHEZZA("Questa è una frase ") ==> 19

24Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=TROVA(StringaCercata;StringaDoveCerco [;I])

Restituisce la posizione della 1° occorrenza di STRINGACERCATA a partire dall'I‐esimo carattere della stringa STRINGADOVECERCO. Se non trova niente restituisce #VALORE! (lo stesso codice di errore viene restituito anche da scalc). Quando I è omesso la ricerca parte dal primo carattere.

=TROVA("fra";"Questa è una frase fraintesa") ==> 14=TROVA("fra";"Questa è una frase fraintesa";15) ==> 20

La funzione TROVA è case sensitive (ovvero distingue tra maiuscolo e minuscolo)

=TROVA("FRA";"Questa è una frase fraintesa";15) ==> #VALORE!

La funzione TROVA, se il primo argomento è la stringa vuota "" restituisce 1.

=TROVA("";"Ave Students") ==> 1

=ANNULLA.SPAZI(Argomento) Sostituisce nell'ARGOMENTO (di tipo stringa) qualsiasi sequenza di spazi con un singolo spazio. Elimina inoltre gli spazi iniziali e finali.

=ANNULLA.SPAZI(" Ciao sono io ") ==> "Ciao sono io"

25Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=RICERCA(StringaCercata;StringaDoveCerco [;I])

Restituisce la posizione della 1° occorrenza di STRINGACERCATA a partire dall'I‐esimo carattere della stringa STRINGADOVECERCO. Se non trova niente restituisce #VALORE! (lo stesso codice di errore viene restituito anche da scalc). Quando I è omesso la ricerca parte dal primo carattere.

=RICERCA("fra";"Questa è una frase fraintesa") ==> 14=RICERCA("fra";"Questa è una frase fraintesa";15) ==> 20

La funzione RICERCA non è case sensitive (ovvero distingue da maiuscolo e minuscolo)

=RICERCA("FRA";"Questa è una frase fraintesa";15) ==> 20

La funzione RICERCA, se il primo argomento è la stringa vuota "" restituisce 1.

=RICERCA("";"Ave Students") ==> 1

=RIPETI(Argomento;N) Ripete ARGOMENTO (di tipo stringa) per N volte 

=RIPETI("CIAO";3) ==> "CIAOCIAOCIAO"=RIPETI("CIAO";0) ==> ""

26Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=SOSTITUISCI(Stringa;StringaCercata;NewStringa;[I])

Restituisce la stringa ottenuta sostituendo nel 1° argomento Stringa tutte le occorrenze della sottostringa StringaCercata con la stringa NewStringa passata come 3°argomento.

=SOSTITUISCI("CIAO CASA";"A";"*") ==> "CI*O C*S*"

La funzione SOSTITUISCI è case sensitive (ovvero distingue tra maiuscolo e minuscolo)

=SOSTITUISCI("CIAO CASA";"a";"*") ==> "CIAO CASA"

Se è presente il parametro facoltativo I allora solo l'I‐esima occorrenza della StringaCercata verrà sostituita con NewStringa

=SOSTITUISCI("CIAO CASA";"A";"*";2) ==> "CIAO C*SA"

27Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Funzioni di conversioneVALORE, ARROTONDA, FISSO, TRONCA, INT, ORARIO.VALORE, DATA.VALORE, TESTO

=ARROTONDA(Argomento;N)La funzione ARROTONDA arrotonda ARGOMENTO a N cifre decimali. Restituisce quindi un risultato numerico. N è obbligatorio.=ARROTONDA(1,449;1) ==> 1,4=ARROTONDA(1,45;1) ==> 1,5=ARROTONDA(1,45;0) ==> 1=ARROTONDA(-1,449;1) ==> -1,4=ARROTONDA(-1,45;1) ==> -1,5=ARROTONDA(-1,45;0) ==> -1=ARROTONDA(151,9351;-3) ==> 0=ARROTONDA(151,9351;-2) ==> 200=ARROTONDA(151,9351;-1) ==> 150=ARROTONDA(151,9351;0) ==> 152=ARROTONDA(151,9351;1) ==> 151,9=ARROTONDA(151,9351;2) ==> 151,94=ARROTONDA(151,9351;3) ==> 151,935=ARROTONDA(151,9351;4) ==> 151,9351=ARROTONDA(151,9351;5) ==> 1551,9351

28Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=FISSO(Argomento;[N];[NoSeparatoreMigliaia])

La funzione FISSO arrotonda ARGOMENTO a N cifre decimali e lo restituisce in forma testuale, formattandolo (se richiesto!) con i separatori delle migliaia e la virgola decimale. Se N è omesso l'arrotondamento è fatto a 2 cifre decimali. NOSEPARATOREMIGLIAIAdi default è FALSO pertanto il separatore delle migliaia viene visualizzato a meno che non si imposti il parametro a VERO.

=FISSO(1551,935) ==> "1.551,94" (N di default vale 2)=FISSO(1551,935;-4) ==> "0"=FISSO(1551,935;-3) ==> "2.000"=FISSO(1551,935;-2) ==> "1.600"=FISSO(1551,935;-1) ==> "1.550"=FISSO(1551,935;0) ==> "1.552"=FISSO(1551,935;1) ==> "1.551,9"=FISSO(1551,935;2) ==> "1.551,94"=FISSO(1551,935;3) ==> "1.551,935"=FISSO(1551,935;4) ==> "1.551,9350"=FISSO(1551,935;3;FALSO) ==> "1.551,935" (scalc sostituisce

FALSO con 1 in automatico)=FISSO(1551,935;3;VERO) ==> "1551,935" (in scalc sostituisce

VERO con 1 in automatico)

29Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=TRONCA(Argomento;[N])=INT(Argomento)La funzione TRONCA elimina la parte decimale di un numero senza effettuare alcun arrotondamento. Il valore N ha come valore di default zero. La funzione INTarrotonda per difetto all'intero inferiore (per cui in caso di valori negativi . 

Le funzioni TRONCA (con N=0) e INT si differenziano soltanto quando si utilizzano valori negativi: 

=TRONCA(4,9) ==> 4=TRONCA(4,09) ==> 4=INT(4,9) ==> 4 (è l'intero inferiore più vicino)=TRONCA(-4,9) ==> -4=INT(-4,09) ==> -5 (è l'intero inferiore più vicino)

Restituiscono entrambe degli interi. 

=TRONCA(129,921;0) ==> 129=TRONCA(129,921;1) ==> 129,9=TRONCA(129,921;2) ==> 129,92=TRONCA(129,921;3) ==> 129,921=TRONCA(129,921;-1) ==> 120 (tronca alla decina)=TRONCA(129,921;-2) ==> 100 (tronca alle centinaia)=TRONCA(129,921;-3) ==> 0

30Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=TESTO(Argomento; [MascheraFormato])Trasforma il primo parametro ARGOMENTO secondo le specifiche indicate in MASCHERAFORMATO. Nella tabella sottostante sono elencate le specifiche relative ai formati di tipo data/ora.

Maschera di formato Esempio Risultato Descrizione

"g" =TESTO("02/02/2005 01.02.03";"g") "2" Visualizza il giorno come numero senza zero iniziale (1 – 31)."gg" =TESTO("02/02/2005";"gg") "02" Visualizza il giorno come numero con zero iniziale (01 – 31)."ggg" =TESTO("02/02/2005";"ggg") "mer" Visualizza il giorno abbreviato (dom – sab)."gggg" =TESTO("02/02/2005";"gggg") "mercoledì Visualizza il giorno per esteso (domenica – sabato)

"m" =TESTO("02/02/2005";"m") "2"Visualizza il mese come numero senza zero iniziale (1 – 12). Se mè preceduto da h o hh, viene visualizzato il valore relativo ai minuti anziché il mese.

"mm" =TESTO("02/02/2005";"mm") "02"Visualizza il mese come numero con zero iniziale (01 – 12). Se mè preceduto da h o hh, viene visualizzato il valore relativo ai minuti anziché il mese.

"mmm" =TESTO("02/02/2005";"mmm") "feb" Visualizza il mese abbreviato (gen – dic)."mmmm" =TESTO("02/02/2005";"mmmm") "febbraio" Visualizza il nome per esteso del mese (gennaio – dicembre).

"mmmmm" =TESTO("02/02/2005";"mmmmm") "f" Visualizza la prima lettera del nome del mese (g – d).aa =TESTO("02/02/2005";"aa") "05" Visualizza l'anno come numero di due cifre (00 – 99).aaaa =TESTO("02/02/2005";"aaaa") "2005" Visualizza l'anno come numero di quattro cifre (100 – 9999).ww =TESTO("02/02/2009";"ww") "6" Visualizza il numero della settimana (1 – 53). [solo in scalc]h =TESTO("01.02.03";"h") "1" Visualizza l'ora come numero senza zero iniziale (0 – 23).hh =TESTO("01:02:03";"hh") "01" Visualizza l'ora come numero con zero iniziale (00 – 23).m =TESTO("01:02:03";"m") "2" Visualizza i minuti come numero senza zero iniziale (0 – 59).mm =TESTO("01:02:03";"mm") "02" Visualizza i minuti come numero con zero iniziale (00 – 59).s =TESTO("01:02:03";"s") "3" Visualizza i secondi come numero senza zero iniziale (0 – 59).ss =TESTO("01:02:03";"ss") "03" Visualizza i secondi come numero con zero iniziale (00 – 59)

[mm] =TESTO("01:02:45";"[mm]") "62" Visualizza la stringa contenente il tempo trascorso in minuti[ss] =TESTO("01:02:03";"[ss]") "3723" Visualizza la stringa contenente il tempo trascorso in secondi

31Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Possiamo combinare assieme le maschere appena presentate come negli esempi seguenti (si osservi l'uso dello \ per indicare quando un carattere va preso così come è e non deve essere interpretato come una codifica di formato!):

=TESTO("12/03/05";"""Ome"": gggg, g mmmm aaaa") ==> "Ome: sabato, 12 marzo 2005"=TESTO("12/03/05 01.08.03";"O\m\e: gggg or\ario hh:mm") ==> "Ome: sabato orario 01:08"=TESTO("12/03/05 01.08.03";"Ome: gggg orario hh:mm") ==> "O32005: sabato or05rio 01:08"

Nella tabella sottostante sono elencate le specifiche relative ai formati di tipo numerico:

Maschera di formato Esempio Risultato Descrizione

"#.##0,00" =TESTO(0,005;"#.##0,00") 0,01     Si osservi: un numero senza parte intera viene visualizzato con lo 0 iniziale. 

"#.###,00"=TESTO(1000,009;"#.###,00") 1.000,01

Se il numero di cifre decimali è superiore a quello indicato nella maschera di formato allora il numero viene arrotondato per difetto o eccesso a seconda.

=TESTO(0,0049;"#.###,00") ,00 Si osservi: un numero senza parte intera viene visualizzato senza lo 0 iniziale

00000 =TESTO(1;"00000") 00001Segnaposto di cifra. Visualizza una cifra o uno zero. Se il numero passato come primo argomento contiene una cifra nella posizione in cui compare lo 0 nella stringa del formato allora tale cifra verrà visualizzata; in caso contrario in tale posizione verrà visualizzato uno 0.

0,000E+00 =TESTO(1234,56;"0,000E+00") 1,235E+03 Mostra l'argomento in notazione esponenziale

"#.##0 \L\i\r\e""#.##0 ""Lire"""

=TESTO(1000,014;"#.##0 \L\i\r\e") 1.000 Lire

Se voglio scrivere delle parole per evitare confusione con le sigle della maschera di formato devo racchiuderle tra "" "" oppure anteporre ad ogni lettera della parola il carattere \

32Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=ORARIO.VALORE(Argomento)La funzione ORARIO.VALORE restituisce il numero seriale (usato internamente da EXCEL per memorizzare i dati temporali!) associato alla stringa ARGOMENTOintesa come orario. 

=ORARIO.VALORE("01/01/1900") ==> 0 (Err:502 in scalc)=ORARIO.VALORE("01/01/1900 18.00.00") ==> 0,75=ORARIO.VALORE("01/01/2020 12:00:00") ==> 0,5=ORARIO.VALORE("Ciao") ==> #VALORE! (Err:502 in scalc)

=VALORE(Argomento)Converte ARGOMENTO (una stringa!) nel numero corrispondente. In caso la conversione non sia possibile restituisce il codice di errore: #VALORE!

=VALORE("1,002") ==> 1,002=VALORE("H2O") ==> #VALORE! (Err:502 in scalc) =VALORE("18.00.00") ==> #VALORE! (0,75 in scalc)=VALORE("18:00:00") ==> 0,75 (Err:502 in scalc)=VALORE("01/01/1900") ==> 1 (in scalc 2) =VALORE("31/12/1899") ==> #VALORE! (in scalc 1)=VALORE("29/12/1899") ==> #VALORE! (in scalc -1)

33Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=DATA.VALORE(Argomento)La funzione DATA.VALORE restituisce il numero seriale (usato internamente da EXCEL) abbinato alla data, scritta come stringa (quindi racchiusa tra doppio apice "!), contenuto in ARGOMENTO. Se ARGOMENTO non è una data valida restituisce #VALORE!. In altre parole restituisce il numero di giorni passati a partire dalla data di riferimento del 31/12/1899 (il 30/12/1899 per scalc).

=DATA.VALORE("01/01/1900") ==> 1 (2 in scalc)=DATA.VALORE("01/01/1900 12:00:00") ==> 1 (2 in scalc)=DATA.VALORE("01/01/1900 18.00.00") ==> 1 (2 in scalc)=DATA.VALORE(TESTO(OGGI();"G/M/AA")) ==> Nr gg dal 30/12/1899

ad oggi

=DATA.VALORE("Ciao") ==> #VALORE! (non è una data)(Err:502 in scalc)

=DATA.VALORE("31/12/1899") ==> #VALORE! (1 in scalc)=DATA.VALORE("29/12/1899") ==> #VALORE! (-1 in scalc)=DATA.VALORE(21/10/2014) ==> #VALORE! (non è una stringa)

(Err:502 in scalc)=DATA.VALORE("29/02/2014") ==> #VALORE! (non è bisestile)

(Err:502 in scalc)=DATA.VALORE(OGGI()) ==> #VALORE! (OGGI() non restituisce una

stringa!)(Err:502 in scalc)

34Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Funzioni cronologiche

=OGGI()Restituisce la data di oggi

=OGGI() ==> la data di oggi: esempio 25/12/2028=OGGI()+1 ==> la data di domani: esempio 26/12/2028=OGGI()-1 ==> la data di ieri: esempio 24/12/2028

=ADESSO()Restituisce la data e l'ora dell'istante attuale.=ADESSO() ==> la data e l'ora attuale:

esempio 25/12/2028 23.21

OGGI, ADESSO, ANNO, MESE, GIORNO, GIORNO.SETTIMANA, ORA, MINUTO, SECONDO

=ORA(Argomento)Restituisce l'ora dell'istante passato come ARGOMENTO. =ORA("13:11:10") ==> 13=ORA(0,75) ==> 18

35Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=MINUTO(Argomento)Restituisce i minuti dell'istante passato come ARGOMENTO.=MINUTO("13:11:10") ==> 11=MINUTO(0,76875) ==> 27 - (corrisponde alle 18.27)

=SECONDO(Argomento)Restituisce i secondi dell'istante passato come ARGOMENTO.=SECONDO("13:11:10") ==> 10

=ANNO(Argomento)Restituisce l'anno della data (espressa come stringa o come numero seriale) passata come ARGOMENTO. 

=ANNO("01/01/2019") ==> 2019=ANNO(OGGI()) ==> anno corrente: esempio 2019=ANNO(1) ==> 1900 - 1 corrisponde a 1/1/1900 in excel

(1899 in scalc poiché 1 corrisponde al31/12/1899)

=ANNO("29/02/2015") ==> #VALORE! Non è bisestile(anche in scalc)

36Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=MESE(Argomento)Restituisce il mese (in numero) della data passata come ARGOMENTO. 

=MESE("01/11/2019") ==> 11=MESE(OGGI()) ==> mese corrente: esempio 12=MESE(1) ==> 1 - 1 corrisponde a 1/1/1900 in excel

(12 in scalc poiché 1 corrisponde al 31/12/1899)

=GIORNO.SETTIMANA(Argomento[;Tipo])Restituisce il giorno della settimana (in numero!) della data passata come ARGOMENTO. (1 ==> domenica, 2 ==> lunedì etc.). 

=GIORNO.SETTIMANA("01/11/2009") ==> 1 (è domenica)=GIORNO.SETTIMANA("02/11/2009") ==> 2 (è lunedì)

La funzione GIORNO.SETTIMANA ha un 2° argomento (facoltativo!) che indica da dove partire con la numerazione dei giorni della settimana come mostrato nella tabella qui a lato. Se imposto come TIPO un valore nonpresente nella tabella ottengo l'errore #NUM!. In scalc lanumerazione adottata si ferma al numero 3.

37Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=GIORNO(Argomento)Restituisce il giorno del mese (in numero!) della data passata come ARGOMENTO. =GIORNO("01/11/2019") ==> 1=GIORNO(OGGI()) ==> giorno corrente: esempio 31=GIORNO(1) ==> 1 – in Excel 1 corrisponde a 1/1/1900

(31 in scalc poiché 1 corrisponde al31/12/1899)

38Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=SE( ; ; )

=SE(Condizione;ValSeVero;ValSeFalso)Restituisce il 2° parametro VALSEVERO se la CONDIZIONE è vera altrimenti il 3°parametro VALSEFALSO.

Funzioni di test e controlloSE, E, O, VAL.VUOTO, VAL.NUMERO, VAL.TESTO, VAL.ERRORE, VAL.ERR, VAL.NONDISP, SE.ERRORE

=SE(A1>0;"Valore positivo";"Valore non positivo")==> Se A1 contiene un valore maggiore di zero

restituisce "Valore positivo" altrimenti"Valore non positivo".

39Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

2° argomento A

E' possibile inserire all'interno di una formula SE un ulteriore SE portando in questo modo il numero di possibili risposte a tre.

=SE(A1<=0;SE(A1<0;"Negativo";"Zero");"Positivo")==> se A1 è > zero restituisce "Positivo", se

minore di zero "Negativo" altrimenti "Zero".

=SE.ERRORE(Argomento;ValoreSeErrore)Restituisce VALORESEERRORE se ARGOMENTO genera un errore altrimenti ritornaARGOMENTO. Per ora non esiste in scalc. E' equivalente alla formula:

=SE(VAL.ERRORE(Argomento); ValoreSeErrore; Argomento)

=SE.ERRORE(A1/A2;"Divisione per zero") ==> Restituisce l'avviso di errore se A2 contiene zero

40Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=E(Condizione1[; Condizione2; ...])Restituisce vero se tutte le condizionii sono vere altrimenti falso.

=E(A1>=0;A1<=10;A2<=20;A2>=0) ==> Vero se (A1;A2) è nelrettangolo (0,0)-(10,20)

In Excel accetta 255 condizioni mentre in scalc ammette al massimo 30 argomenti.

=O(Condizione1[; Condizione2; ...])Restituisce falso se tutte le condizionii sono false altrimenti vero.

=O(A1<0;A1>10;A2>20;A2<0) ==> Vero se (A1;A2) non è nelrettangolo (0,0)-(10,20)

In Excel accetta 255 condizioni mentre in scalc ammette al massimo 30 argomenti.

=VAL.ERRORE(Argomento)Restituisce VERO quando ARGOMENTO è una di queste costanti di errore: #N/D, #VALORE!, #RIF!, #DIV/0!, #NUM!, #NOME? o #NULLO!. In scalc abbiamo  le costanti di errore: Err:501 ... Err:527. 

=VAL.ERRORE(1/0) ==> Vero (1/0 genera #DIV/0!)=VAL.ERRORE(SOOMMA(1;2)) ==> Vero (soomma non esiste)=VAL.ERRORE(SOMMA(1;2)) ==> Falso (la formula è corretta)

41Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=VAL.NUMERO(Argomento)Restituisce VERO se il parametro passato ARGOMENTO è un numero altrimenti FALSO (anche quando l'argomento è un errore!).

=VAL.NUMERO("1,51") ==> Falso=VAL.NUMERO("ciao") ==> Falso=VAL.NUMERO(1,51) ==> Vero=VAL.NUMERO(1/0) ==> Falso (l'argomento vale #DIV/0!)=VAL.NUMERO(FISSO(1,32)) ==> Vero (FISSO restituisce

un valore testuale)=VAL.NUMERO(TRONCA(1,32)) ==> Vero (TRONCA restituisce

un valore numerico)

=VAL.ERR(Argomento)Funzione identica a VAL.ERRORE() tranne che #N/D dove restituisce falso. 

=VAL.ERRORE(#N/D) ==> Falso=VAL.ERR(#RIF!) ==> Vero

=VAL.NON.DISP(Argomento)Restituisce vero se l'argomento corrisponde alla costante di errore #N/D.

=VAL.NON.DISP(#N/D) ==> Vero

42Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=VAL.TESTO(Argomento)Restituisce VERO se il parametro passato è tipo testuale altrimenti FALSO. Anche quando la cella è vuota.

=VAL.TESTO("1,51") ==> Vero=VAL.TESTO("ciao") ==> Vero=VAL.TESTO(A1) ==> Falso se la cella A1 è vuota=VAL.TESTO(1,51) ==> Falso=VAL.TESTO(1/0) ==> Falso (l'argomento vale #DIV/0!)=VAL.TESTO(FISSO(1,32)) ==> Vero (FISSO restituisce

un valore testuale)=VAL.TESTO(TRONCA(1,32)) ==> Falso (TRONCA restituisce

un valore numerico)

=VAL.VUOTO(Argomento)Restituisce VERO se la cella indicata come argomento risulta vuota.

=VAL.VUOTO(A1) ==> Falso se A1 contiene qualcosa(anche una formula come ="" o che vain errore!) altrimenti Vero

43Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Funzioni InformativeAMBIENTE.INFO, INDICE, INDIRETTO, CELLA, INDIRIZZO

=AMBIENTE.INFO(InfoRichiesta) / =INFO("Request") in scalcRestituisce delle informazioni relative all'ambiente su cui si sta operando.

=AMBIENTE.INFO("directory") ==> cartella contenente il file di excel su cui stiamo lavorando (in scalc non esiste un comando analogo)=AMBIENTE.INFO("sistema") ==> restituisce "pcdos" se il sistema operativo è WINDOWS "mac" se si tratta di un MACINTOSH (in scalc equivale a =INFO("SYSTEM") ==> "WNT" se Windows – "LINUX" se Linux – "SOLARIS" se Solaris)=AMBIENTE.INFO("versione") ==> restituisce 16.0 se stiamo usando Excel 2016, 15.0 con Excel 2013 - 14.0 con Excel 2010 - 11.0 con Excel 2003 (In scalc è =INFO("Version") oppure =INFO("Release") => 412m3(Build:9782) con scalc 4.1.2)

44Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=CELLA(InfoRichiesta; Riferimento)Restituisce le informazioni richieste con il parametro INFORICHIESTA associate alla cella RIFERIMENTO.

=CELLA("col";B7) ==> 2 (B è la 2° colonna)=CELLA("riga";B7) ==> 7 (In scalc è =CELLA("row";B7) )=CELLA("nomefile";A1) ==> restituisce il nome del foglio completo: C:\documenti\[esercizio.xlsx]FoglioEsempi. (In scalc è =CELLA("FileName";A1) e riporta il percorso nella forma: 'file:///C:/documenti/esercizio.ods'#$FoglioEsempi)=CELLA("Pioppo";A1) ==> se il parametro INFORICHIESTA è errato restituisce l'errore #VALORE! (in scalc Err:502)=CELLA("contenuto";B7) ==> visualizza il valore (non la formula) della cella B7. (In scalc =CELLA("contents";B7)) =CELLA("tipo";B7) mostra il tipo di contenuto nella cella B7 ovvero: l:label o testo; v:value o numero; b:blank o vuoto. In scalc la formula corrispondente è =CELLA("type";A1)

Esempio:

=SE(CELLA("tipo";A1)="b";"Cella vuota"; SE(CELLA("tipo";A1)="l";"Testo";"Numero")

)

45Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=INDIRIZZO(Riga; Colonna [;TipoRiferimento;Stile])La funzione INDIRIZZO è utile per ottenere il riferimento di una cella di un foglio di lavoro in base ai numeri di RIGA e di COLONNA specificati. 

Il parametro TIPORIFERIMENTO è facoltativo. Specifica il tipo di riferimento da restituire sulla base della seguente tabella:

Il parametro STILE è anch'esso facoltativo. Specifica lo stile di riferimento: A1 o R1C1. Nello stile A1 le colonne vengono etichettate con caratteri alfabetici e le righe con caratteri numerici. Nello stile di riferimento R1C1 le colonne e le righe vengono entrambe etichettate con caratteri numerici. Se l'argomento Stile è VERO (1) o viene omesso la funzione INDIRIZZO restituirà un riferimento di tipo A1. Se invece è FALSO(0) restituirà un riferimento di tipo R1C1.

TipoRiferimento Restituisce il seguente tipo di riferimento 1 (default) Assoluto – Esempio $A$12 Assoluto (riga), relativo (colonna) – Esempio A$13 Relativo (riga), assoluto (colonna) – Esempio $A14 Relativo – Esempio A1

46Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Esempi:

=INDIRIZZO(2;3) ==> $C$2=INDIRIZZO(2;3;1) ==> $C$2 (1 è il default)=INDIRIZZO(2;3;2) ==> C$2=INDIRIZZO(2;3;3) ==> $C2=INDIRIZZO(2;3;4) ==> C2

=INDIRIZZO(2;3;1;FALSO) ==> R[2]C[3]=INDIRIZZO(2;3;2;FALSO) ==> R2C[3] =INDIRIZZO(2;3;3;FALSO) ==> R[2]C3 =INDIRIZZO(2;3;4,FALSO) ==> R2C3

=INDIRETTO(Riferimento)Restituisce il valore della cella indicata in RIFERIMENTO. Occorre però fare delle precisazioni in merito all'argomento:

=INDIRETTO("A1") ==> contenuto di A1 (equivale a =A1)=INDIRETTO(A1) ==> contenuto della cella indicata dentro la cella A1 - ad esempio se A1 contiene B10 allora verrà restituito il valore contenuto in B10=INDIRETTO("A0") ==> #RIF! (in scalc Err:502)=INDIRETTO(INDIRIZZO(1;1)) ==> equivalente a =A1

47Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=INDICE(Matrice; R; C)Restituisce il valore della cella che si trova nell'R‐esima riga e C‐esima colonna dell'area indicata in MATRICE. Se R o C escono dalle dimensioni della MATRICE la funzione restituisce l'errore #RIF!. Gli indici R e C partono da 1

=INDICE(A1:B7;2;1) ==> Valore nella cella A2=INDICE(A1:B7;10;1) ==> #RIF! In scalc Err:502

48Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Funzioni di ricercaCERCA.VERT, CERCA.ORIZZ., CONFRONTA, CERCA, SCEGLI

=CERCA.VERT(ValoreCercato;Matrice;ColonnaRestituita;[RicercaNonEsatta])

Distinguiamo le 2 casistiche con RICERCANONESATTA uguale a FALSO e a VERO.

RICERCANONESATTA uguale a FALSO: (elenco ordinato e non)

La funzione CERCA.VERT ricerca sulla 1° colonna dell'area MATRICE lacorrispondenza esatta con VALORECERCATO e se la trova restituisce il contenuto dellacella situata sulla stessa riga e sulla colonna indicata in COLONNARESTITUITA.

49Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

RICERCANONESATTA uguale a VERO: (elenco necessariamente ordinato)

Con RICERCANONESATTA pari a VERO l'elenco deve essere ordinato onde evitarerisultati imprevisti. Il valore di default, applicato quando ometto il 4° argomento, èVERO

Con RICERCANONESATTA pari a FALSO la funzione CERCA.VERT confrontatutti gli elementi di MATRICE con il VALORECERCATO prima di stabilire se il datonon è presente in elenco. Pertanto non è necessario ordinare MATRICE rispetto alla1° colonna visto che la ricerca continua fino a quando non trovo un elementoesattamente uguale a VALORECERCATO oppure quando arrivo in fondo all'elenco.Quando VALORECERCATO non è presente in MATRICE CERCA.VERT restituisce(sia con elenco ordinato oppure no) l'errore #N/D.

50Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

La funzione CERCA.VERT in questo caso restituisce il valore posto sulla colonnaindicata in COLONNARESTITUITA corrispondente all'ultima riga dove il valore sulla 1°colonna è risultato minore o uguale a VALORECERCATO.

In questo caso il risultato è errato!

51Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Se VALORECERCATO risulta inferiore al primo elemento sulla 1° colonna dell'elencoordinato la funzione CERCA.VERT restituisce la costante di errore #N/D.

Se VALORECERCATO risulta superiore all'ultimo elemento sulla 1° colonnadell'elenco ordinato la funzione CERCA.VERT restituisce un valore dell'ultima rigache dipende da COLONNARESTITUITA.

52Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Non ha senso utilizzare la funzione CERCA.VERT con RICERCANONESATTA pari a VERO quando l'elenco in MATRICE risulta non ordinato (rispetto alla 1° colonna!) poiché i risultati sono talvolta errati o imprevedibili

Nell'esempio in figura ottengo un risultato errato nonostante VALORECERCATO risulti realmente presente in elenco.

Nell'esempio sottostante 2 risultati differenti difficilmente interpretabili.

Quindi se l'elenco non è ordinato, per evitare risultati imprevisti, occorre impostareTIPOCORRISPONDENZA a FALSO (corrispondenza esatta!).

53Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

TIPOCORRISPONDENZA impostato a VERO risulta utile quando voglio stabilirel'appartenenza di VALORECERCATO ad un range preso da una sequenza di intervalliconsecutivi i cui estremi sinistri corrispondono ai valori contenuti nella prima colonna(ordinata!) di MATRICE. Il caso classico è quello degli interessi a scalare. Ad ognifascia di capitale corrisponde una determinata percentuale di interessi. Vediamo unesempio pratico:

=CERCA.VERT(G4;B4:D12;3;VERO)

Con CERCA.VERT() determino il tasso corrispondente al capitale versato in modo semplice evitando la complessità dell'equivalente soluzione con la funzione SE():

=SE(C<1000;4%;SE(C<2000;5%;SE(...;SE(C<8000;11%;12%) ...))

E' evidente che la presenza di molti tassi percentuale distinti costringe alla scrittura di lunghe sequenze di SE(), una dentro l'altra.

54Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=CONFRONTA(ValoreCercato;Vettore[;TipoCorrispondenza])

La funzione CONFRONTA, quando TIPOCORRISPONDENZA è posto a zero, ricerca VALORECERCATO in un intervallo di celle (VETTORE) e ne restituisce la sua posizione relativa all'interno di tale intervallo. Se la ricerca fallisce restituisce l'errore #N/D. La funzione non è case sensitive. Ecco un esempio:

TIPOCORRISPONDENZA è facoltativo. Può assumere i valori ‐1, 0 o 1. Questo parametro specifica il modo in cui Excel confronta il VALORECERCATO con i valori contenuti nel VETTORE. Il valore predefinito è 1.

Nella tabella della pagina successiva vengono illustrate le modalità di confronto in base al valore dell'argomento TIPOCORRISPONDENZA. 

55Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

TipoCorrispondenza Comportamento

1 (default)

CONFRONTA troverà il valore più grande che è minore o uguale al ValoreCercato. Per funzionare è necessario che i valori nell'argomento Matrice siano disposti in ordine crescente.

0 CONFRONTA troverà il primo valore che corrisponde esattamente al ValoreCercato. I valori nell'argomento Matricepossono essere disposti in qualsiasi ordine.

-1 CONFRONTA troverà il valore più piccolo che è maggiore o uguale al valorecercato. Per funzionare è necessario che i valori dell'argomento matrice siano disposti in ordine decrescente.

Se TIPOCORRISPONDENZA è uguale a 1 e  VALORECERCATO è minore del valore più basso in VETTOREDOVECERCARE allora la funzione restituisce il codice di errore #N/D. Analogamente se TIPOCORRISPONDENZA è uguale a ‐1 e  VALORECERCATO è maggiore del valore più alto in VETTOREDOVECERCARE allora la funzione restituisce il codice di errore #N/D

56Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Se TIPOCORRISPONDENZA è uguale a 0 e VALORECERCATO è una stringa di testo,sarà possibile utilizzare in VALORECERCATO i caratteri jolly, ovvero il puntointerrogativo (?) e l'asterisco (*). Il punto interrogativo ? e l'asterisco * identificanorispettivamente un carattere singolo (non quello vuoto!) e una sequenza di caratteriqualsiasi (anche quella vuota). Se si desidera trovare proprio il punto interrogativo ol'asterisco, occorre digitare una tilde ~ (alt+126) prima del carattere.

57Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=CERCA(ValoreCercato;VettoreDoveCercare;[VettoreDoveEstrarre])

La funzione CERCA risulta utile quando la ricerca si svolge su una sola riga o una sola colonna altrimenti è preferibile utilizzare CERCA.VERT o CERCA.ORIZZ a seconda. Possiede 2 sintassi: "Vettore" e "Matrice". La sintassi matriciale è stata implementata solo per compatibilità ed è consigliabile utilizzare in alternativa le funzioni migliorate CERCA.VERT o CERCA.ORIZZ .

Nella sintassi "Vettore" la funzione CERCA prevede i seguenti argomenti:

- VALORECERCATO Obbligatorio. E' il valore che viene cercato nel 2°argomento VETTOREDOVECERCARE. VALORECERCATO può essere un numero, un testo, un valore logico oppure un nome o un riferimento.

- VETTOREDOVECERCARE Obbligatorio. Rappresenta l'intervallo di ricerca contenente solo una riga o una colonna. I valori in VETTOREDOVECERCAREpossono essere testo, numeri o valori logici.Importante! È necessario che i valori in VETTOREDOVECERCARE siano ordinati in modo crescente. In caso contrario, CERCA potrebbe restituire risultati errati. La funzione non distingue tra lettere maiuscole e minuscole (non è case sensitive!).

58Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

- VETTORERISULTATO Facoltativo. Intervallo (ha la stessa dimensione di

VETTOREDOVECERCARE!) composto da una sola riga o colonna dove viene estratto il risultato corrispondente al contenuto della cella posta nella stessa posizione dell'elemento di VETTOREDOVECERCARE e che rappresenta il risultato della ricerca. 

Se la funzione CERCA non riesce a trovare il VALORECERCATO, utilizzerà il valore più alto in VETTOREDOVECERCARE che sia minore o uguale del VALORECERCATO (A).

Se VALORECERCATO è minore del valore più basso in VETTOREDOVECERCARE allora la funzione restituisce il codice di errore #N/D (B).

(A) (B)

59Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=SCEGLI(Posizione;Valore1 [,… , Valore254])La funzione SCEGLI utilizza il parametro POSIZIONE per restituire il valore preso dall'elenco degli argomenti VALOREi che occupa la POSIZIONE i indicata. Il numero massimo di valori ammessi in Excel 2016 è 254 (in scalc è 30).  Se la POSIZIONE è maggiore del numero di valori in elenco la funzione restituisce #VALORE!.

Esempio:

=SCEGLI(3;"A";"B";"C";"D";"E";"F";"G") ==> "C"=SCEGLI(10;"A";"B";"C") ==> #VALORE!=SCEGLI(CASUALE.TRA(1;4);"1";"1";"1";"2") ==> Genera

un numero 1 o 2 dove 1 ha una frequenza di uscita(75%) 3 volte maggiore di quella del 2 (25%)

=CERCA.ORIZZ(ValoreCercato;Matrice;RigaRestituita;[RicercaNonEsatta])

La funzione CERCA.ORIZZ è analoga a CERCA.VERT solo che la ricerca viene fatta sulla prima riga di MATRICE e non sulla prima colonna.

60Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Come in CERCA.VERT distinguiamo le 2 casistiche con RICERCANONESATTA ugualea FALSO e a VERO.

Con RICERCANONESATTA uguale a FALSO non è necessario ordinare l'elenco. In questo caso la funzione CERCA.ORIZZ ricerca sulla 1° riga dell'area MATRICE la corrispondenza esatta con VALORECERCATO e se la trova restituisce il contenuto della cella situata sulla stessa colonna e sulla riga indicata in RIGARESTITUITA. Con RICERCANONESATTA uguale a VERO l'elenco deve essere ordinato onde evitare risultati imprevisti. Il valore di default, applicato quando ometto l'argomento, è VERO. La funzione CERCA.ORIZZ in questo caso restituisce il valore posto sulla riga indicata in RIGARESTITUITA corrispondente all'ultima colonna dove il valore sulla 1° riga è risultato minore o uguale a VALORECERCATO. 

Come per CERCA.VERT quando l'elenco non è ordinato, per evitare risultati imprevisti,occorre impostare TIPOCORRISPONDENZA a FALSO (corrispondenza esatta!).

TIPOCORRISPONDENZA impostato a VERO risulta utile quando voglio stabilirel'appartenenza di VALORECERCATO ad un range preso da una sequenza di intervalliconsecutivi i cui estremi sinistri corrispondono ai valori contenuti nella prima riga(ordinata!) di MATRICE.

Vediamo questo esempio: determinare la stagione associata alla data generatacasualmente con la formula =CASUALE.TRA(1;OGGI()).

61Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Nella determinazione della stagione l'anno è ininfluente. Dobbiamo quindi costruireuna codifica della data che elimini tale informazione ma al tempo stesso mantenga lacompatibilità con l'ordinamento cronologico. Iniziamo quindi a trasformare la data inuna stringa composta dai numeri corrispondenti al mese e al giorno. Utilizziamo a talescopo la funzione: =TESTO(B1;"mmgg").

Questa codifica testuale "stringa"data garantisce, quando 2 date appartengono allo stesso anno solare, la seguente relazione:

"stringa"data1 < "stringa"data2 data1< data2In altre parole questa codifica (che elimina l'anno!) fa si che l'ordinamento tipico delle stringhe (alfanumerico) risulti compatibile con quello cronologico.

62Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Possiamo ora applicare la ricerca per intervalli tipica del CERCA.ORIZZ quando il 4°argomento è posto a VERO (oppure è omesso). Con questo parametro il CERCA.ORIZZ restituisce il valore posto sulla seconda riga (nome stagione) corrispondente all'ultima colonna dove il valore sulla 1° riga è risultato minore o uguale alla codifica testuale appena illustrata applicata alla data in C5 (ovvero restituisce la colonna con la codifica della data di inizio della stagione corrispondente alla data generata).

Si poteva risolvere l'esempio anche con la formula =MESE(C5)*100+GIORNO(C5). Questa codifica numerica Interodata garantisce, quando 2 date appartengono allo stesso anno solare, la seguente relazione:

Interodata1 < Interodata2 data1< data2In altre parole questa codifica (che elimina l'anno!) fa si che l'ordinamento numericorisulti compatibile con quello cronologico.

63Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Possiamo ora applicare la ricerca per intervalli tipica del CERCA.ORIZZ quando il 4°argomento è posto a VERO (oppure è omesso). Con questo parametro il CERCA.ORIZZ restituisce il valore posto sulla seconda riga (nome stagione) corrispondente all'ultima colonna dove il valore sulla 1° riga è risultato minore o uguale alla codifica numerica appena illustrata applicata alla data in C5 (ovvero restituisce la colonna con la codifica della data di inizio della stagione corrispondente alla data generata).

64Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Le formule matriciali (ad esempio: MATR.PRODOTTO) devono essere inserite in questo modo (anche in scalc e Mac!):

Inizio a digitare la formula

Confermo premendo la combinazione di tasti ctrl+shift+invio

Seleziono l'area relativa alla matrice che dovrà contenere la formula in forma matriciale

Funzioni matricialiMATRICE.PRODOTTO, MATR.SOMMA.PRODOTTO, MATR.INVERSA, MATR.DETERMINANTE, MATR.TRASPOSTA

65Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Quindi per confermare le formule in forma matriciale, anziché usare Invio, si utilizza la combinazione Ctrl+Shift+Invio. Quando si preme Ctrl+Shift+Invio, la formula viene racchiusa tra parentesi graffe {} e in ogni cella dell'intervallo selezionato viene inserita un'istanza della formula digitata. 

Una formula in forma matriciale consente di eseguire calcoli algebrici multipli tra elementi situati nella medesima posizione in due o più matrici.

Le formule matriciali sono un modo molto efficace per semplificare la scrittura di una formula molto complessa. Ad esempio la formula matriciale seguente

{=SOMMA(C1:C8*D1:D8)}

equivale a questa:

=SOMMA(C1*D1;C2*D2;C3*D3;C4*D4;C5*D5;C6*D6;C7*D7;C8*D8)

Ctrl+shift+invio

66Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Se scrivo la formula =SOMMA(C2:C10*D2:D10) e premo Invio per confermare ottengo l'errore #VALORE! poiché la scrittura C2:C10*D2:D10 è una sintassi applicabile solo alla forma matriciale.

Non è possibile sovrascrivere un singolo elemento di una formula matriciale che si estende su un'area composta da più celle.

Per modificare una formula in forma di matrice basta selezionare l'area e premere successivamente il tasto F2. 

Quando le aree della formula matriciale non presentano la medesima dimensione si verifica l'errore #N/D nelle celle che si riferiscono a posizioni che non hanno un corrispondente in tutte le matrici coinvolte nel calcolo.

Ctrl+shift+invio

Per visualizzare le celle utilizzateda una formula si utilizza il ribbon"Formule" e poi si clicca sulla voce"Individua precedenti".

67Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Le costanti matriciali sono una componente delle formule in forma di matrice. Vengono create racchiudendo l'elenco dei valori tra parentesi graffe {} (digitate manualmente!). Gli elementi che nella matrice sono posti sulla stessa riga vengono separati con lo \mentre ogni riga viene separata con il singolo punto. In scalc le costanti matriciali vanno scritte in questo modo: ={1;2;3|4;5;6|7;8;9} quindi ; è il separatore di colonna mentre | è il separatore di riga.

E' possibile assegnare un nome alle costanti matriciali mediante il bottone "Gestione nomi" nel ribbon "Formule".

Basta digitare (si osservi il . come separatore!)={"Gennaio"."Febbraio"."Marzo"}e confermare con "OK":

Per utilizzare il nome Trimestre basta selezionare3 celle e digitare "=Trimestre" e successivamenteconfermare con ctrl‐shift‐invio.

Ctrl+shift+invio

={1\2\3.4\5\6.7\8\9}

68Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=MATR.PRODOTTO(MatriceA;MatriceB)Restituisce il prodotto di due matrici A e B. Il risultato è una matrice con lo stesso numero di righe RA di MatriceA e lo stesso numero di colonne CB di MatriceB.

=MATR.PRODOTTO(B2:C4;E2:H3) ==> Matrice prodotto

Attenzione: il numero di colonne CA della matriceA deve essere uguale al numero di righe RB della matriceB ed entrambe le matrici devono contenere solo numeri (ne celle vuote ne testo!) altrimenti la formula restituisce l'errore #VALORE!.

MatriceA e MatriceB possono essere specificate come: 1) intervalli di celle A1:A9, 2) costanti matriciali ={1\2\3.4\5\6.7\8\9} 3) riferimenti mnemonici (=Trimestre).La matrice prodotto ha dimensione RAxCB ed è composta dai seguenti elementi pr,c

, , · ,

Esempio:=MATR.PRODOTTO({1\2.3\4};{1\2.3\4}) ==> prodotto matrice 2x2 (in scalc si scrive: =MATR.PRODOTTO({1;2|3;4};{1;2|3;4}) )

69Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=MATR.SOMMA.PRODOTTO(Matrice1[;Matrice2… ; Matrice254])

Moltiplica gli elementi che risultano nella stessa posizione (riga r, colonna c) delle matrici specificate e restituisce un numero scalare corrispondente alla somma di tutti questi prodotti.

Esempio:  =MATR.SOMMA.PRODOTTO(B2:D4;F2:H4;J2:L4;N2:P4)

Attenzione: le matrici devono avere tutte la stessa dimensione NxM. In caso contrario MATR.SOMMA.PRODOTTO restituisce l'errore #VALORE!. Elementi non numerici delle matrici vengono interpretati come zeri.

Il risultato è un numero e non una matrice (pertanto basta premere invio per confermare la formula!).

, · ,

70Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=MATR.TRASPOSTA(Matrice)La funzione MATR.TRASPOSTA restituisce la matrice trasposta della MATRICEargomento (trasforma le colonne in righe e viceversa). Deve essere immessa come formula matriciale (quindi con ctrl+shift+invio) in un'area di celle la cui dimensione NxMdeve corrispondere alla dimensione trasposta MxN della MATRICE argomento.

La funzione MATR.TRASPOSTA risulta utile per  cambiare l'orientamento da verticale a orizzontale (e viceversa) di un intervallo di celle.

=MATR.INVERSA(Matrice)

Attenzione: se la MATRICE contiene elementi non numerici (celle vuote o testo) oppure non è quadrata la funzione MATR.INVERSA restituisce l'errore  #VALORE!.

Restituisce l'inversa della MATRICE con un grado di precisione fino alla 18‐esima cifra decimale. L'argomento deve essere una matrice quadrata.

71Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=MATR.DETERM(Matrice)Restituisce il determinante della MATRICE con un grado di precisione di circa 16 cifre decimali. L'argomento deve essere una matrice quadrata.

Attenzione: come per la MATR.INVERSA quando la MATRICE contiene elementi non numerici (celle vuote o testo) oppure non è quadrata restituisce l'errore  #VALORE!. Il determinante viene cosi definito:

Le matrici inverse e i determinanti, vengono in genere utilizzate per la risoluzione di sistemi di equazioni matematiche che comprendono diverse variabili. Il determinante misura il volume del parallelepipedo generato dai vettori colonna della matrice.

Determinante matrice 1x1 – E' l'elemento stesso a1,1.

Determinante matrice 4x4

Determinante matrice 3x3 –a1,1*(a2,2*a3,3‐a2,3*a3,2)‐a1,2*(a2,1*a3,3‐a2,3*a3,1)‐a1,3*(a2,1*a3,2‐a2,2*a3,1)‐

Determinante matrice 2x2 – a1,1*a2,2‐a1,2*a2,1

72Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Funzioni NotazioneBINARIO.DECIMALE, BINARIO.HEX, HEX.DECIMALE, HEX.BINARIO, DECIMALE.BINARIO, DECIMALE.HEX, BIT.SPOSTA.DX, BIT.SPOSTA.SX

=BINARIO.DECIMALE(BINARIOCOMP2)Converte la notazione binaria in complemento a 2 nel numero corrispondente in base. Il parametro BINARIOCOMP2 può avere al massimo 10 bit (dove il decimo è quello del segno). Se digito più di 10 bit la funzione restituisce l'errore #NUM!

=BINARIO.DECIMALE(111) ==> 7=BINARIO.DECIMALE(1000000001) ==> -511=BINARIO.DECIMALE(1111111110) ==> -2=BINARIO.DECIMALE(10000000001) ==> #NUM! (Err:502 in scalc)

=BINARIO.HEX(BINARIOCOMP2)Converte la notazione binaria in complemento a 2 nel numero corrispondente in base 16. Il parametro BINARIOCOMP2 può avere al massimo 10 bit (dove il decimo è quello del segno). Se digito più di 10 bit la funzione restituisce l'errore #NUM!

=BINARIO.HEX(11111) ==> 1F (0001 1111)=BINARIO.HEX(1000000000) ==> FFFFFFFE00 (1110 0000 0000)=BINARIO.HEX(1111111110) ==> FFFFFFFFFE (1111 1111 1110)

73Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=HEX.DECIMALE(STRNUMEROHEX)Converte un intero in notazione esadecimale, composto al massimo da 10 digit, nel corrispondente numero in base 10. I numeri negativi vengono rappresentati in complemento a 16.  L'intervallo di rappresentazione è [‐239,239‐1]  ovvero da 8000000000 a 7FFFFFFFFF. Se il parametro STRNUMEROHEX è composto da più di 10 digit la funzione restituisce l'errore #NUM!.

=HEX.DECIMALE("ADA") ==> 2778 (10∙162+13∙161+10∙160)=HEX.DECIMALE("FFFFFFFFFE") ==> -2=HEX.DECIMALE("8000000000") ==> -239 (-8∙169=-23∙(24)9)=HEX.DECIMALE("7FFFFFFFFF") ==> 239-1 (8000000000-1 in hex)

=HEX.BINARIO(STRNUMEROHEX[;CIFRE])Converte un intero in notazione esadecimale, composto al massimo da 10 digit, nel corrispondente numero binario in complemento a 2 a 40 bit (di cui il primo è per il segno). Se il numero STRNUMEROHEX è negativo CIFRE verrà ignorato.  L'intervallo di rappresentazione è [‐29,29‐1]  ovvero da FFFFFFFE00 … FFFFFFFFFF … 0 … 1FF. 

=HEX.BINARIO("1FF";10) ==> 01 1111 1111 (+511 = 29-1)=HEX.BINARIO("FFFFFFFE00") ==> 10 0000 0000 (-512 = -29)=HEX.BINARIO("FFFFFFFFFF") ==> 11 1111 1111 (-1 = -512+511) =HEX.BINARIO("FFFFFFFD00") ==> #NUM! (Err:502 in scalc)

74Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=DECIMALE.BINARIO(NUMERO[;CIFRE])Converte un intero in base 10 compreso tra ‐512 e 511 ([‐29,29‐1]) in notazione binaria in complemento a 2. CIFRE è opzionale (deve essere al massimo 10) e consente di aggiungere degli zeri iniziali quando il risultato ha poche cifre. Se il NUMERO è esterno all'intervallo [‐29;29‐1] oppure cifre è insufficiente allora la funzione restituisce l'errore #NUM!

=DECIMALE.BINARIO(7;8) ==> 00000111=DECIMALE.BINARIO(-512) ==> 1000000000=DECIMALE.BINARIO(511) ==> 111111111 =DECIMALE.BINARIO(1;11) ==> #NUM! (Cifre deve essere <11!)

=DECIMALE.HEX(NUMERO[;CIFRE])Converte un intero, scritto in notazione decimale, compreso tra ‐239 e 239‐1 nelcorrispondente numero in notazione esadecimale composto al più da 10 digit (per cui sonorichiesti 39 bit + 1 per il segno). I numeri negativi vengono rappresentati in complemento a16. CIFRE è opzionale (deve essere al massimo 10) e consente di aggiungere degli zeriiniziali quando il risultato ha poche cifre. Se il parametro NUMERO è esterno all'intervallo [‐239,239‐1] o il numero di cifre è insufficiente la funzione restituisce l'errore #NUM!

=DECIMALE.HEX(17;1) ==> #NUM! (richiede 2 digit!)=DECIMALE.HEX(POTENZA(2;39)) ==> #NUM! (out of range)=DECIMALE.HEX(POTENZA(2;39)-1)) ==> 7FFFFFFFFF

75Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

=BIT.SPOSTA.DX(NUMERO10[;NBITSPOSTATI])=BIT.SPOSTA.SX(NUMERO10[;NBITSPOSTATI])Restituisce un valore in base 10 ottenuto scorrendo la rappresentazione binaria di NUMERO10 (espresso in base 10) di NBITSPOSTATI bit a destra o a sinistra a seconda della funzione utilizzata. NUMERO10 deve essere un valore appartenente all'intervallo [0,248‐1] altrimenti restituisce l'errore #NUM!. Le due formule sottostanti sono equivalenti  =BIT.SPOSTA.SX(X;N) e =BIT.SPOSTA.DX(X;-N) Valori NUMERO10 non numerici determinano l'errore #VALORE!. Se il modulo di NBITSPOSTATI è maggiore di 53 ottengo l'errore #NUM! . In scalc queste funzioni non esistono in modo nativo.

=BIT.SPOSTA.SX(7;3) ==> 56 (111<<3 = 111000)=BIT.SPOSTA.DX(16;2) ==> 4 (10000>>2 = 100)=BIT.SPOSTA.SX(7;54) ==> #NUM!=BIT.SPOSTA.SX("ADA";3) ==> #VALORE!

76Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

APPROFONDIMENTI

77Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

#NOME? ‐ Riferimento inesistente o nome di funzione errato. Esempio: =soma(A1:A3) al posto di =somma(A1:A3) oppure =Ciao senza aver definito il nome Ciao (In scalc la costante è identica e corrisponde al codice Err:525. I codice di errore di scalc possono essere ricavati con la funzione =ERRORE.TIPO())

#DIV/0! ‐ divisione per zero. Ad esempio: =1/0. (uguale in scalc ‐ Err:532) ####### ‐ il valore nella cella è più lungo di quanto la colonna permetta di 

visualizzare (in scalc visualizza solo 3 #). #VALORE! ‐ la formula ha un valore incompatibile. Esempio: =1+"A" (uguale in 

scalc ‐ Err:519) #NULL! ‐ Questo errore viene visualizzato quando si specifica un'intersezione tra 

due aree che non si intersecano. L'operatore di intersezione è uno spazio posto tra i 2 riferimenti. Esempio: =somma(A1:B3 C1:C3). (In scalc non esiste l'operatore intersezione!).

#RIF! – Viene prodotto quando ho un riferimento errato. Esempio:  =INDIRETTO("A0") . In scalc restituisce Err:502 ("argomento non valido")

#NUM! – Questo errore indica che una formula contiene valori numerici non validi o che determinano un overflow. Ad esempio: =0^0 (in scalc non genera alcun errore ma restituisce il valore 1), =RADQ(-1) (in scalc restituisce Err:502) o=123456789012345^400 (in scalc restituisce #NUM! ‐ Err:503) .

APPROFONDIMENTO 1: Costanti di errore 

78Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

#N/D – Una funzione di ricerca (CERCA, CERCA.VERT, CERCA.ORIZZ o CONFRONTA) non ha individuato un valore compatibile con quello indicato nel 1°argomento. Ad esempio quando la funzione CERCA(valore;vettore) non riesce a trovare in VETTORE il VALORE cercato restituisce l'elemento più alto di VETTORE che risulta ≤  di VALORE. Se VALORE è minore del minimo valore in VETTORE allora CERCA restituisce #N/D. Esempi: =CERCA("A";{"B";"C";"D"}) (in excel 2003 e scalc) =CERCA("A";{"B"\"C"\"D"}) (in excel 2016).

=ERRORE.TIPO(COSTANTEERRORE)Restituisce il numero corrispondente al codice di errore passato come argomento oppure restituisce #N/D se non vi è alcun errore. È possibile utilizzare la funzione ERRORE.TIPO(in combinazione con SE.ERRORE() e SCEGLI()) per  restituire una stringa di testo più esplicativa rispetto al codice di errore. In scalc i codici restituiti sono completamente differenti.

=SE.ERRORE(SCEGLI(ERRORE.TIPO(B2);"1 ->NULLO";"2 ->DIVISIONE PER 0";"3 ->VALORE INCOMPATIBILE";"4 ->RIFERIMENTO ERRATO";"5 ->NOME INESISTENTE";"6 ->VALORE NUMERICO NON AMMESSO";"7 ->NON TROVATO";"8 ->ESTRAZIONE DATI IN CORSO!");

"NESSUN ERRORE!")

Una funzione utile per la gestione degli errori è ERRORE.TIPO.

79Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Presentiamo in questa sezione una serie di esercizi il cui obiettivo è generare un punto casuale (a,b) all'interno di una regione del piano cartesiano circoscritta da 2 generiche funzioni f(x) e g(x).

soluzione:

APPROFONDIMENTO 2: Generazione casuale di un punto all'interno di una regione

a (A1) α+(β-α)*CASUALE()

Problema: Impostare le 2 formule in A1 (a) e B1 (b) che generano un punto casuale (a,b) =(A1,B1) all'interno della regione piana delimitata tra  i grafici delle funzioni f(x) e g(x) nell'intervallo sulle ascisse [α,β].

La generazione casuale della coordinata a (A1) può essere ottenuta con la seguente formula:

La generazione casuale della coordinata b varia a seconda dei ruoli che le 2 funzioniricoprono in termini di confine superiore ed inferiore della regione piana analizzata.Dalla figura vediamo che se x > χ allora f(x) > g(x)mentre se x ≤ χ ho f(x) ≤ g(x).

80Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Valutiamo quindi la casistica con x > χ

Se a > χ f(x) > g(x) pertanto b (B1) =g(A1)+(f(A1)-g(A1))*CASUALE()

Se ho rinominato A1 con a posso scrivere:  =g(a)+(f(a)-g(a))*CASUALE()

Ripercorrendo il medesimo ragionamento analizziamo la casistica con a ≤ χ

Se a ≤ χ g(x) ≥ f(x) pertanto b (B1) =f(A1)+(g(A1)-f(A1))*CASUALE()

La formula da inserire in B1 sarà quindi:=SE(A1>χ;

g(A1)+(f(A1)-g(A1))*CASUALE();f(A1)+(g(A1)-f(A1))*CASUALE()

)Oppure=SE(A1>χ;g(A1);f(A1))+ASS(f(A1)-g(A1))*CASUALE()

81Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Esercizio 1: Scrivere la formula che genera in A1 e A2 le coordinate di un punto casuale (A1,A2)=(X,Y) nel rettangolo con angolo inferiore sinistro l'origine e angolo superiore destro (a,b).  

Ecco alcuni esercizi presi dai test di esame. PS.: le coordinate generate devono essere valori reali e non solo interi!

soluzione:

X (A1) =a*CASUALE()Y (A2) =b*CASUALE()

Esercizio 2: Scrivere la formula che genera in A1 e A2 le coordinate di un punto casuale (A1,A2)= (X,Y) nel rettangolo con angolo inferiore sinistro (a,c) e superiore destro (b,d). 

soluzione:X (A1) =CASUALE()*(b-a)+aY (A2) =CASUALE()*(d-c)+c

Esercizio 3: Scrivere la formula che genera in A1 e A2 le coordinate di un punto casuale (A1,A2)=(X,Y) nel triangolo con vertici (0,0), (a,0) e (a,a). soluzione:

X (A1) =CASUALE()*aY (A2) =CASUALE()*A1

82Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Esercizio 4: Scrivere la formula che genera in A1 e A2 le coordinate di un punto casuale (A1, A2)=(X,Y) appartenente al triangolo con vertici (0,0), (a,a) e (0,a). 

soluzione:

X (A1) =a*CASUALE()Y (A2) =A1+(a-A1)*CASUALE()oppureY (A2) =a*CASUALE()X (A1) =A2*CASUALE()

Esercizio 5: Scrivere la formula che genera in A1 e A2 le coordinate di un punto casuale (A1,A2)=(X,Y) appartenente al triangolo con vertici (0,0), (a,0) e (0,a).

soluzione:

X (A1) =a*CASUALE()Y (A2) =(a-A1)*CASUALE()

oppure

Y (A2) =a*CASUALE()X (A1) =(a-A2)*CASUALE()

83Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Presentiamo in questa sezione una serie di esempi d'uso delle funzioni E(), O() e NON(). Obiettivo di tutti gli esempi proposti è quello di stabilire se un generico punto (a,b), i cui valori sono digitati all'interno di determinate celle, appartiene o meno ad una regione del piano cartesiano rappresentata in figura. 

In pratica occorre trovare una funzione booleana F(x,y) da collocare come primo argomento della seguente funzione SE()

=SE(F(x,y);"DENTRO LA";"FUORI DALLA")

in modo che venga visualizzata la scritta "DENTRO LA" se le coordinate (a,b)appartengono alla zona colorata richiesta, la scritta "FUORI DALLA" altrimenti. 

Esempio 1: Fornire la funzione F(x,y) che restituisce VERO se il punto (a,b) (celle B4 e B5) è all'interno o sui bordi del quadrato blu mostrato nella figura qui a lato.

soluzione:

APPROFONDIMENTO 3: Esempi d'uso delle funzioni E(), O() e NON().

Attenzione! Quando i bordi dell'area colorata risultano tratteggiati sono da considerarsi esterni alla zona analizzata (in realtà nei test d'esame l'eventuale inclusione dei bordi tratteggiati nella soluzione "DENTRO LA" non viene mai penalizzata!).

F(x;y)E(B4<=3;B4>=1;B5<=3;B5>=1)

84Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Utilizzando la funzionalità, fornita dai fogli elettronici, che ci permette di rinominare una cella assegnando un nome più esplicito come ad esempio X alla cella B4 e Y alla cella B5…

… posso riscrivere la formula F(x,y) in questo modo:

E(X<=3;X>=1;Y<=3;Y>=1)

Successivamente clicco sul bottone "Nuovo…" (A), definisco il nome (1), l'ambito di visibilità (2) e la cella (3) che desidero rinominare. Infine confermo (4).

Clicco sul ribbon "Formule" (A), poi sul bottone "Gestione nomi" (B).

Analizziamo ora alcuni schemi di riferimento:

85Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Ecco la soluzione F(x,y) per le seguenti regioni:

86Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

87Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

In generale se F(x,y) e G(x,y) sono rispettivamente la soluzione per la regione α e per la regione β allora soluzioni accettabili per le regioni intersezione  ∩ , unione  ∪ e differenza 

sono:

∪ ==> =O(F(x,y);G(x,y))∩ ==> =E(F(x,y);G(x,y))

==> =E(F(x,y);NON(G(x,y)))

88Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

E adesso esercitatevi (nascondendo le soluzioni!)

89Dipa

rtim

ento di Ing

egne

ria M

eccanica e In

dustria

le –Co

rso di laurea

: Ing

egne

ria Gestio

nale 

Docente: Marco Sechi  ‐ Elementi di informatica e programmazione – Università degli studi di Brescia  D.I.M.I ‐ A.A. 2017/2018

Completate i seguenti esercizi (verificandone la correttezza con excel/calc)