somma numeri meglio si avvicina a un altro numero

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
frank10
Messaggi: 94
Iscritto il: martedì 30 marzo 2010, 19:34

somma numeri meglio si avvicina a un altro numero

Messaggio da frank10 »

Devo decidere quante confezioni comprare di diversi grammi per raggiungere un certo totale.

Es:

Codice: Seleziona tutto

     A       D
1  318      60
2           125    
raggiungere 318g con 60 e 125:
per eccesso: 125*3 = 375
per difetto:
125+60*3 = 305
ma anche, meglio:
125*2 + 60 = 310

iniziando dai pezzi più grossi, scendendo poi verso quelli più piccoli.

Per ora avevo fatto manualmente dividendo per il maggior valore e rifacendo per il rimanente da colmare, come nell'allegato.
Dove ho provato coi valori
848 (con 125, 250, 500)
318 (con 60,125,500)
e funziona.
Le confezioni disponibili non sono sempre 3 tipi, ma possono variare. Basterà fare una matrice più lunga...

Come itero il tutto in una formula?
Altri tipi di calcolo migliori?
Allegati
TestCalcoloConfezioni.ods
(10.41 KiB) Scaricato 118 volte
LibreOffice 6.1.2.1 Win10 x64
Avatar utente
gioh66
Volontario
Volontario
Messaggi: 1750
Iscritto il: lunedì 31 luglio 2017, 14:57
Località: Friuli

Re: somma numeri meglio si avvicina a un altro numero

Messaggio da gioh66 »

Buonasera. La mia soluzione è spostare la quantità di partenza in C17 (casella gialla del file), poi in C19 ho messo

Codice: Seleziona tutto

=SE(VAL.ERRORE(RESTO($C17;$E18));"";RESTO($C17;$E18))
da trascinare in basso. E in D18, sempre da trascinare in basso

Codice: Seleziona tutto

=SE(VAL.ERRORE(INT($C17/$E18));"";INT($C17/$E18))
Allego file di prova, dove ho aggiunto una ipotetica confezione da 60 gr
Allegati
TestCalcoloConfezioni-bis.ods
(11.76 KiB) Scaricato 106 volte
...se sei soddisfatto delle risposte ricevute metti il [Risolto] https://forum.openoffice.org/it/forum/v ... f=9&t=5661

Libreoffice 6/7 Ubuntu 22.04 - PcLinuxOS - LinuxMint 21
Attilafdd
Volontario
Volontario
Messaggi: 539
Iscritto il: giovedì 5 aprile 2012, 8:25

Re: somma numeri meglio si avvicina a un altro numero

Messaggio da Attilafdd »

frank10 ha scritto: Altri tipi di calcolo migliori?
Essendo un problema di ottimizzazione la soluzione migliore è usare il risolutore.

Allego schermate con i due esempi citati:
848 (con 125, 200, 500)
318 (con 60,125,500)

.....
Allegati
Risolutori 03.png
Risolutori 04.png
Risolutori 05.png
Ultima modifica di Attilafdd il venerdì 17 novembre 2017, 23:25, modificato 1 volta in totale.
LibreOffice 24.2.2 (Win 11)
-----------------------------------------
Se risolto inserisci [Risolto] e la spunta verde Immagine: https://forum.openoffice.org/it/forum/v ... f=9&t=5661
Attilafdd
Volontario
Volontario
Messaggi: 539
Iscritto il: giovedì 5 aprile 2012, 8:25

Re: somma numeri meglio si avvicina a un altro numero

Messaggio da Attilafdd »

... e il file con gli esempi.

Se ci sono dubbi fai sapere.
Allegati
TestCalcoloConfezioni v2.ods
(11.23 KiB) Scaricato 123 volte
LibreOffice 24.2.2 (Win 11)
-----------------------------------------
Se risolto inserisci [Risolto] e la spunta verde Immagine: https://forum.openoffice.org/it/forum/v ... f=9&t=5661
Attilafdd
Volontario
Volontario
Messaggi: 539
Iscritto il: giovedì 5 aprile 2012, 8:25

Re: somma numeri meglio si avvicina a un altro numero

Messaggio da Attilafdd »

P.S. per questo tipo di ottimizzazioni io uso il "Risolutore lineare di Libreoffice", che risulta più veloce degli altri.

P.P.S. Da scegliere nella scheda "opzioni" v. schermata
Allegati
Risolutori 06.png
LibreOffice 24.2.2 (Win 11)
-----------------------------------------
Se risolto inserisci [Risolto] e la spunta verde Immagine: https://forum.openoffice.org/it/forum/v ... f=9&t=5661
Attilafdd
Volontario
Volontario
Messaggi: 539
Iscritto il: giovedì 5 aprile 2012, 8:25

Re: somma numeri meglio si avvicina a un altro numero

Messaggio da Attilafdd »

Quel che non ho capito è se devi raggiungere un certo totale (quindi ottenere soluzioni per una somma di valore inferiore al limite che poni)
frank10 ha scritto:... per raggiungere un certo totale.
oppure se puoi anche superarlo:
frank10 ha scritto:...
per eccesso: 125*3 = 375
nel caso tu possa superarlo basta che imposti il valore target pari al valore limite maggiorato del minimo peso delle confezioni.
V. esempio sotto
Allegati
Risolutori 07.png
LibreOffice 24.2.2 (Win 11)
-----------------------------------------
Se risolto inserisci [Risolto] e la spunta verde Immagine: https://forum.openoffice.org/it/forum/v ... f=9&t=5661
frank10
Messaggi: 94
Iscritto il: martedì 30 marzo 2010, 19:34

Re: somma numeri meglio si avvicina a un altro numero

Messaggio da frank10 »

grazie mille!
Me li guardo con calma domani o lunedì perché oggi non posso.
Poi ti dico.
Ciao
LibreOffice 6.1.2.1 Win10 x64
frank10
Messaggi: 94
Iscritto il: martedì 30 marzo 2010, 19:34

Re: somma numeri meglio si avvicina a un altro numero

Messaggio da frank10 »

@Attilafdd
ho provato il tuo metodo. Ok, però:
1) se ho capito bene, bisogna attivarlo manualmente ogni volta che cambia il valore... Non è quello che mi serve: ho decine di sostanze da scegliere con molti venditori che propongono i loro pacchetti di grammature diverse... impensabile farlo a mano. Volevo una formula che calcolasse in automatico.
2) il tuo metodo non parte dalla misura più alta, ad esempio con 280 mi seleziona 2x125 invece di 1x250.

@gioh66
Grazie. La tua soluzione mi pare la strada giusta.
Potrebbe però essere una soluzione imperfetta a volte se il risultato fosse migliore con tagli più piccoli:
es:
60
125
250
risultato 180
La formula partendo dal max dà 1x125=125, mentre in questo caso 3x60=180 sarebbe più giusta.
Però sono due approcci diversi: in genere tagli maggiori costano anche meno, però se poi accetto di prendere un po' più materiale aggiungendo un'altra confezione minima, avrei 125+60= 185, ma andrebbero comparati i due prezzi totali per vedere quale conviene di più...

Quindi, quella partendo dalle confezioni più grosse abbiamo risolto, l'altro approccio che combina il miglior risultato con le varie grammature (senza farlo manualmente col risolutore)?

Poi potrei comparare i prezzi tra i due metodi di calcolo e scegliere quello che si avvicina di più alla quantità richiesta che sia anche il più conveniente.
LibreOffice 6.1.2.1 Win10 x64
Rispondi