Simulare un piano ammortamento a tasso variabile

Questo file in MS Excel consente di calcolare il piano d’ammortamento di un mutuo a tasso variabile, dando la possibilità all’utente d’inserire la propria previsione sulla variazione dei tassi.
Il file consente il calcolo della rata, della quota capitale e della quota interessi secondo il metodo francese.
Il file è scaricabile e personalizzabile e prevede anche la possibilità d’immettere tetti minimi e massimi eventualmente concordati.

>>>> DOWNLOAD <<<<

PL SQL – Package per il calcolo del codice fiscale

Navigando nel web non sono riuscito a trovare un package plsql per i calcolo del codice fiscale. Ormai stanco di navigare ho deciso di rimboccarmi le maniche e di costruirne uno da zero.

Di seguito il risultato del mio piccolo lavoro costituito da 2 file : uno contentente il package di funzioni plsql per il calcolo ed il secondo contenente la sequenza di istruzioni sql per la costruzione della tabella dei codici catastali dei comuni italiani.

Per mancanza di tempo non ho fatto un numero sufficiente di test tali da poter considerare il lavoro stabile, spero che coloro che usufruiranno del codice, nel caso riscontrino delle anomalie, abbiano l’accortezza di segnalarmele al fine di migliorare il lavoro e spero che chiunque trovi algoritmi migliori di quelli da me utilizzati non si faccia problemi ad segnalarmeli, un vecchio detto marchigiano dice nessuno è nato imparato.

I package è stato impostato con l’idea di essere ampliato e/o migliorato anche con ‘aggiunta di nuove funzioni come ad esempio il controllo del codice fiscale inserito che ho già trovato in rete ma, a mio avviso, sarebbe utile avere un unico package contenente tutto.

>>> DOWNLOAD I FILES  <<<

Un ultima nota:

Durante le mie ricerche in rete ho trovato molto utili i seguenti articoli:
http://www.morfoedro.it/doc.php?n=220&lang=it
http://www.morfoedro.it/cfdescr.php
http://www.agenziaterritorio.it/site.php?id=721
http://www.vbsimple.net/index.htm?/news/news_14.htm

La matematica e il fascino dell’immortalità

Leggendo il libro  “L’ enigma dei numeri primi” di Marcus Du Sautoy – Biblioteca Universale Rizzoli, sono rimasto colpito da alcune affermazioni in merito alla matematica e al desiderio che spinge i matematici verso la scoperta di mondi irreali e talvolta inimmaginabili.

Differentemente dalla fisica o altre scienze, è la natura intangibile ed estremamente astratta della materia,  porta il matematico ad essere morbosamente legato alla dimostrazione come strumento di verifica/conferma.

Nel tempo i matetmatici hanno imparato a non fidarsi di affermazioni prive di dimostrazioni.

“… Ma forse l’argomento più convincente per spiegare perchè la matematica dia tanto valore al fatto di mostrare che un’asserzione è vera è che, a differenza delle altre scienze, essa concede il lusso di poterlo fare….”

“… La matematica è una piramide in cui ogni generazione edifica sulle realizzazioni di quella che l’ha preceduta senza dover temere che ci sia un crollo…”

E’ proprio questo il motivo per cui ogni più piccolo mattonedella struttura matematica necessita di un test, una conferma, un’esame, che permettarà a quel piccolo tassello di essere immortale.

“… Le leggi della logica che si adottano per edificare sopra quelle fondamenta, se applicate correttamente, produrranno dimostrazioni di asserzioni sui numeri che non saranno mai invalidate da nuove intuizioni.”

“… Spesso è questa la ragione per cui le persone circondate da un mondo di incertezze sono attratte verso al disciplina.”

Ecco svelato  il fascino della logica e dei numeri, che stregano  il matematico diventando motivo d’esistenza.

Classificazione ABC di Pareto

L’analisi ABC di Pareto, da molti rinominata 80/20, rappresenta un importante strumento manageriale volto all’individuazione di fattori denominati critici.

Il famoso economista vissuto nei primi anni del ‘900, enunciava che,  da un qualsiasi universo di fattori si può isolare una piccola quantità di essi in grado di determinare evidenti effetti sulle performace generali, distinguendo altresì, un gran numero di fattori, che hanno una scarsa influenza sul complesso delle performace generali.

Questo procedimento, di semplice realizzazione,  viene utilizzato anche in ambito logistico, come strumento volto alla classificazione dello stock; un numero limitato di referenze, infatti, incidono più che abbondantemente sul valore complessivo della giancenza totale. Ecco un esempio di report generato secondo questa classificazione.

Report ABC Pareto

Cod. Valore dello stock – euro % Valore % CUMULATA Valore % Articoli Classificazione
A1 68.000 68,0% 68,0% 10% A
A2 12.000 12,0% 80,0% 20% A
A3 5.000 5,0% 85,0% 30% B
A4 4.000 4,0% 89,0% 40% B
A5 2.000 2,0% 91,0% 50% C
A6 2.000 2,0% 93,0% 60% C
A7 2.000 2,0% 95,0% 70% C
A8 2.000 2,0% 97,0% 80% C
A9 1.500 1,5% 98,5% 90% C
A10 1.500 1,5% 100,0% 100% C

Nella tabella sono state create 3 classificazioni:

  • classificazione A : referenze che rappresentano l’80% del valore complessivo dello stock;
  • classificazione B: referenze che rappresentano il 10 % (dall’ 80% al 90%) del valore complessivo dello stock;
  • classificazione C: referenze che rappresentano il 10% (dal 90% al 100%) del valore complessivo dello stock.

E’ interessante è notare che il 20% percento del numero di referenze (2 referenze su 10) rappresantano l’80% del valore complessivo; ecco cosa deriva il nome classificazione 80-20.

Seppur oggi presenti moltissimi strumenti informatici più evoluti, ho pensato interssante sottoporre all’attenzione un esempio di codice SQL, ottimizzato per Oracle Application Express, che permette di calcolare l’analisi automaticamente. Questo codice, certamente, può essere ottimizzato, ma rappresenta una discreta base di partenza per chi non vuole dedicare l’ 80% del suo tempo a ‘bonificare’ dati e cimintarsi con i soliti ordinamenti e formule di excel a discapito del 20% del tempo utilizzato per riflettere, come accade nella maggior parte dei casi.

Il primo step consiste nel creare una tabella che raccolaga i dati base quali lsta delle refenze e valore complessivo delle quantità in stock.

CREATE TABLE STOCK (
 ARTICLE VARCHAR2(30),
 TOTAL_VALUE NUMBER(9,2)
);

Il secondo step consiste nel popolare di dati la tabella.

INSERT INTO STOCK_VALUE (ARTICLE, TOTAL_VALUE ) VALUES ('A1',30000.00);
INSERT INTO STOCK_VALUE (ARTICLE, TOTAL_VALUE ) VALUES ('A2',8000.00);
INSERT INTO STOCK_VALUE (ARTICLE, TOTAL_VALUE ) VALUES ('A3',5000.00);
INSERT INTO STOCK_VALUE (ARTICLE, TOTAL_VALUE ) VALUES ('A4',2500.00);
INSERT INTO STOCK_VALUE (ARTICLE, TOTAL_VALUE ) VALUES ('A5',1600.00);
INSERT INTO STOCK_VALUE (ARTICLE, TOTAL_VALUE ) VALUES ('A6',2000.00);
INSERT INTO STOCK_VALUE (ARTICLE, TOTAL_VALUE ) VALUES ('A7',2000.00);
INSERT INTO STOCK_VALUE (ARTICLE, TOTAL_VALUE ) VALUES ('A8',2000.00);
INSERT INTO STOCK_VALUE (ARTICLE, TOTAL_VALUE ) VALUES ('A9',1500.00);
INSERT INTO STOCK_VALUE (ARTICLE, TOTAL_VALUE ) VALUES ('A10',1500.00);
INSERT INTO STOCK_VALUE (ARTICLE, TOTAL_VALUE ) VALUES ('A4',1500.00);
INSERT INTO STOCK_VALUE (ARTICLE, TOTAL_VALUE ) VALUES ('A5',400.00);
INSERT INTO STOCK_VALUE (ARTICLE, TOTAL_VALUE ) VALUES ('A1',28000.00);
INSERT INTO STOCK_VALUE (ARTICLE, TOTAL_VALUE ) VALUES ('A1',10000.00);
INSERT INTO STOCK_VALUE (ARTICLE, TOTAL_VALUE ) VALUES ('A2',4000.00);

Step 3 effettuare la query di analisi dei dati:

SELECT
 ARTICLE,
 SUM(TOTAL_VALUE),
 COUNT(*) OVER (ORDER BY SUM(TOTAL_VALUE) DESC, ARTICLE DESC ROWS UNBOUNDED PRECEDING) AS "COUNTER",
 TO_CHAR(COUNT(*) OVER (ORDER BY SUM(TOTAL_VALUE) DESC, ARTICLE DESC ROWS UNBOUNDED PRECEDING) / COUNT(*) OVER (),'09.999999') AS "% COUNTER",
 SUM(TOTAL_VALUE) AS QTY,
 TO_CHAR(SUM(TOTAL_VALUE) / (SUM(SUM(TOTAL_VALUE)) OVER()),'09.999999') AS "% QTY",
 SUM(SUM(TOTAL_VALUE)) OVER (ORDER BY SUM(TOTAL_VALUE) DESC, ARTICLE  DESC ROWS UNBOUNDED PRECEDING) AS "CUMULATE QTY",
 TO_CHAR( SUM(SUM(TOTAL_VALUE)) OVER (ORDER BY SUM(TOTAL_VALUE) DESC, ARTICLE  DESC ROWS UNBOUNDED PRECEDING)/ SUM(SUM(TOTAL_VALUE)) OVER(),'09.999999') AS "% CUM QTY",
 DECODE(
  TRUNC(((SUM(SUM(TOTAL_VALUE)) OVER (ORDER BY SUM(TOTAL_VALUE) DESC, ARTICLE  DESC ROWS UNBOUNDED PRECEDING)/ SUM(SUM(TOTAL_VALUE)) OVER())+0.099999999999999)*10),
                                                                                                                                                            9,'B',
                                                                                                                                                           10,'C',
                                                                                                                                                              'A') AS "CLASS"
FROM
( SELECT  ARTICLE, TOTAL_VALUE FROM STOCK_VALUE)
GROUP BY ARTICLE
ORDER BY "COUNTER" ASC

Ecco l’output della nostra query:

ARTICLE                        SUM(TOTAL_VALUE)       COUNTER                % COUNTER  QTY                    % QTY      CUMULATE QTY           % CUM QTY  CLASS
------------------------------ ---------------------- ---------------------- ---------- ---------------------- ---------- ---------------------- ---------- -----
A1                             68000                  1                       00.100000 68000                   00.680000 68000                   00.680000 A
A2                             12000                  2                       00.200000 12000                   00.120000 80000                   00.800000 A
A3                             5000                   3                       00.300000 5000                    00.050000 85000                   00.850000 B
A4                             4000                   4                       00.400000 4000                    00.040000 89000                   00.890000 B
A8                             2000                   5                       00.500000 2000                    00.020000 91000                   00.910000 C
A7                             2000                   6                       00.600000 2000                    00.020000 93000                   00.930000 C
A6                             2000                   7                       00.700000 2000                    00.020000 95000                   00.950000 C
A5                             2000                   8                       00.800000 2000                    00.020000 97000                   00.970000 C
A9                             1500                   9                       00.900000 1500                    00.015000 98500                   00.985000 C
A10                            1500                   10                      01.000000 1500                    00.015000 100000                  01.000000 C     

10 rows selected

Solo per persone fenomenali

Solo per persone fenomenali…

Tieni sempre presente che la pelle fa le rughe,
i capelli diventano bianchi, i giorni si trasformano in anni…
Però ciò che è importante non cambia;
la tua forza e la tua convinzione non hanno età.

Il tuo spirito è la colla di qualsiasi tela di ragno.
Dietro ogni linea di arrivo c’è una linea di partenza.
Dietro ogni successo c’è un’altra delusione.

Fino a quando sei viva, sentiti viva.
Se ti manca ciò che facevi, torna a farlo.

Non vivere di foto ingiallite…
Insisti, anche se tutti si aspettano che abbandoni.
Non lasciare che si arrugginisca il ferro che c’è in te.

Fai in modo che, invece che compassione, ti portino rispetto.

Quando a causa degli anni non potrai correre, cammina veloce.
Quando non potrai camminare veloce, cammina.
Quando non potrai camminare, usa il bastone.
Però… non trattenerti mai!
(Madre Teresa di Calcutta)