Funzione Random+somma

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
Francis
Messaggi: 2
Iscritto il: giovedì 15 novembre 2018, 10:25

Funzione Random+somma

Messaggio da Francis »

Ciao a tutti,scrivo qui perchè sto andando matto e non sono molto pratico di funzioni complesse in Calc.
Vengo subito al problema:
Devo avere una funzione che mi prenda un nr di numeri a caso di un intervallo di 2 celle e me li restituisca su un nr di celle divise,in modo che la somma di queste sia uguale ad un'altra cella :crazy:
Del tipo.
Cella 1 numero 5
Cella 2 numero 10
Cella 3 numero 38
X celle con numeri a caso tra 5 e 10 la cui somma però inferiore alla cella 3.
Del tipo
10
10
8
5
5
Si può fare secondo voi?Al momento lo sto facendo quasi a mano,ma sto diventando pazzo applicandolo molte volte perchè ho bisogno che questi numeri siano casuali e cambino se io cambiassi le celle 1 e 2.
Si può fare secondo voi?
Grazie davvero :)
Openoffice 4.1.3 windows 10
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Funzione Random+somma

Messaggio da unlucky83 »

ciao, ma il valore di X lo scegli te?
Allego un possibile esempio con X non scelto da te. Ci tengo a precisare che l'ultimo valore casuale viene ridotto al valore utile per raggiungere la somma desiderata quando con quel valore casuale si andrebbe a superare quella particolare soglia.
Allegati
num_casuali.ods
(8.89 KiB) Scaricato 89 volte
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Avatar utente
Eramad
Volontario
Volontario
Messaggi: 278
Iscritto il: martedì 10 aprile 2018, 14:56
Località: Pistoia

Re: Funzione Random+somma

Messaggio da Eramad »

Ho provato a cercare una soluzione con un numero casuale di numeri casuali ( :lol: ) ma c'è un piccolo problema:
l'ultimo numero potrebbe superare il massimo deciso o essere più piccolo del minimo deciso.

Nell'esempio che ti allego ho optato per lasciare che il problema potrebbe essere che l'ultimo sia più grande perchè ho visto che capita meno frequente...ma capita.
Ho provato varie soluzioni ma il problema è sempre che l'ultimo o un'altro dei numeri sia più alto del massimo.

Con le mie competenze mi fermo qui...se qualcuno più bravo riesce a risolvere questo dilemma, sarei curioso anche io di sapere la soluzione.

Ah, per comodità ho dato un nome a tutta la colonna B (chiamandola "ColonnaB") così da poter chiamarla col nome nella macro invece di dover chiamare l'intervallo.

Codice: Seleziona tutto

Sub Main

s=thiscomponent.sheets(0)
min=s.getcellbyposition(1,0).value
max=s.getcellbyposition(1,1).value
fine=s.getcellbyposition(1,2).value
somma=0
riga=0

s.getCellRangeByName("ColonnaB").clearContents(7)

do while somma < fine
	a = int (rnd()*100)
	if a > min and a < max then
		somma = somma + a
		if somma > fine then
			somma = somma - a
			a = fine - somma
			if a < min then
				s.getcellbyposition(2,riga-1).value = s.getcellbyposition(2,riga-1).value + a
				exit do
			else
				s.getcellbyposition(2,riga).value = a
				exit do
			end if
		exit do
		end if
		s.getcellbyposition(2,riga).value = a
		riga = riga + 1
	end if
loop

End Sub
Allegati
Random.ods
(11.2 KiB) Scaricato 84 volte
Apache OpenOffice 4.1.5 su Windows 10

Se hai risolto il problema, ricordati di aggiungere [RISOLTO]: viewtopic.php?f=9&t=5661
Francis
Messaggi: 2
Iscritto il: giovedì 15 novembre 2018, 10:25

Re: Funzione Random+somma

Messaggio da Francis »

Eccomi :) Credo che il tuo unlucky sia proprio al caso mio.Ho provato già un po' ad utilizzarlo e mi sembra vada bene..ti ringrazio moltissimo :)
Una domanda..se volessi importare lo schema in un foglio di lavoro già mio e utilizzarlo con varie celle secondo te si può fare?
Openoffice 4.1.3 windows 10
Rispondi