| | Post: 1 | Registrato il: 17/06/2019
| Città: MILANO | Età: 19 | Utente Junior | Microsoft Office 2013 | | OFFLINE | |
|
17/06/2019 13:20 | |
Salve a tutti, spero che qualcuno mi possa aiutare con il mio "piccolo grande" problema.
in una cella ho il risultato di una somma di numeri che hanno anche tre o quattro cifre decimali, ad es. 245,783.
A me serve ottenere in una cella il prodotto tra le prime due cifre decimali ovvero in questo caso 7x8=56; per fare ciò ho prima fatto il troncamento del numero a due cifre decimali cioè 245,78 e dopo il numero intero con la formula INT ottenendo 245 quindi ho fatto la differenza 245,78-245= 0,78 che ho moltiplicato per 10 ottenendo 7,8 di cui ho fatto nuovamente l'intero ottenendo 7; poi ho fatto la differenza tra 7,8 e 7 ottenendo 0,8 che ho poi moltiplicato per 10 ottenendo 8, quindi alla fine ho fatto il prodotto. Sembrerebbe filare tutto liscio invece mi sono accorto che a volte nella differenza tra un numero troncato o intero, compaiono delle cifre decimali che poi inficiano il risultato finale. C'è un modo più veloce di ottenere quello che sto cercando? Grazie mille per l'eventuale risposta. |
|
| | Post: 2.262 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
17/06/2019 16:46 | |
ciao
usa la funzione TRONCA abbinata a formule di testo; è una "schifezza" ma ti assicuro che funziona.
tuo valore in A1:
=SINISTRA(TRONCA((A1-INT(A1))*100);1)*DESTRA(TRONCA((A1-INT(A1))*100);1)
Se poi vuoi capire il perchè accade questo, dai una letta al seguente sito:
https://support.microsoft.com/it-it/help/78113/floating-point-arithmetic-may-give-inaccurate-results-in-excel
Saluti
Domenico
Win 10 - Excel 2016 |
| | Post: 2.150 | Registrato il: 21/03/2008
| Città: LOCATE VARESINO | Età: 76 | Utente Veteran | 2007 / 13 | | OFFLINE | |
|
17/06/2019 16:49 | |
ciao
altra formula a quella di dodo, che saluto
in A1 il tuo valore in
B1 =RESTO(((ARROTONDA(A1;2)-INT(A1))*10);1)*10
riciao possiamo anche accorciare il tutto
=--DESTRA(INT(A1*100);1)
[Modificato da locatevaresino 17/06/2019 19:12] Ciao da locate
excel 2007 / 13 |
| | Post: 1 | Registrato il: 17/06/2019
| Città: MILANO | Età: 19 | Utente Junior | Microsoft Office 2013 | | OFFLINE | |
|
18/06/2019 08:21 | |
dodo47, 17/06/2019 16.46:
ciao
usa la funzione TRONCA abbinata a formule di testo; è una "schifezza" ma ti assicuro che funziona.
tuo valore in A1:
=SINISTRA(TRONCA((A1-INT(A1))*100);1)*DESTRA(TRONCA((A1-INT(A1))*100);1)
Se poi vuoi capire il perchè accade questo, dai una letta al seguente sito:
https://support.microsoft.com/it-it/help/78113/floating-point-arithmetic-may-give-inaccurate-results-in-excel
Saluti
Grazie mille, l'ho provata in più casi e funziona perfettamente. Già mi ero imbattuto in quell'articolo quando stavo cercando di capire il perché di quelle cifre decimali.
[Modificato da Fra.R 18/06/2019 08:38] |
| | Post: 2 | Registrato il: 17/06/2019
| Città: MILANO | Età: 19 | Utente Junior | Microsoft Office 2013 | | OFFLINE | |
|
18/06/2019 08:23 | |
locatevaresino, 17/06/2019 16.49:
ciao
altra formula a quella di dodo, che saluto
in A1 il tuo valore in
B1 =RESTO(((ARROTONDA(A1;2)-INT(A1))*10);1)*10
riciao possiamo anche accorciare il tutto
=--DESTRA(INT(A1*100);1)
Grazie, poi provo anche questa ;-) |
| | Post: 2.151 | Registrato il: 21/03/2008
| Città: LOCATE VARESINO | Età: 76 | Utente Veteran | 2007 / 13 | | OFFLINE | |
|
18/06/2019 09:43 | |
ciao
non avevo letto bene la tua domanda e mi ero fermato alla seconda cifra
comunque per il prodotto tra il primo e il secondo decimale la formula e la sequente
=DESTRA(INT(A1*10);1)*DESTRA(INT(A1*100);1)
quindi troviamo il primo decimale e lo moltiplichiamo per il secondo
7*8
Ciao da locate
excel 2007 / 13 |
| | Post: 4 | Registrato il: 17/06/2019
| Città: MILANO | Età: 19 | Utente Junior | Microsoft Office 2013 | | OFFLINE | |
|
18/06/2019 11:59 | |
locatevaresino, 18/06/2019 09.43:
ciao
non avevo letto bene la tua domanda e mi ero fermato alla seconda cifra
comunque per il prodotto tra il primo e il secondo decimale la formula e la sequente
=DESTRA(INT(A1*10);1)*DESTRA(INT(A1*100);1)
quindi troviamo il primo decimale e lo moltiplichiamo per il secondo
7*8
Provata, funziona ed è anche molto semplice. Grazie. [Modificato da Fra.R 18/06/2019 12:00] |
| | Post: 150 | Registrato il: 11/03/2014
| Città: CASTELLETTO SOPRA TICINO | Età: 57 | Utente Junior | Excel 2016 | | OFFLINE | |
|
19/06/2019 16:53 | |
Ciao
formula alternativa
=STRINGA.ESTRAI(A1-TRONCA(A1;0);3;1)*STRINGA.ESTRAI(A1-TRONCA(A1;0);4;1)
Saluti
Marco |
|
|