Pagina 1 di 1

[Risolto] Sottrarre un valore fino a raggiungere un range?

Inviato: sabato 25 settembre 2010, 9:08
da kokkolos
Ciao a tutti!

Ho un problema con calc...

voglio che mi sottragga sempre lo stesso valore fino al raggiungimento dell range minimo impostato <250 .
Esempio:

nella cella C19 ho un valore.Se questo è maggiore di 90, calc mi deve sottrarre da questo numero sempre 90 fino a raggiungere un numero compreso tra 1 e 90 . (Sottrarre sempre di 90 in 90)...Il valore deve mostrarlo nella cella D19. Il valore da sottrarre in questo caso "-90" è nella cella C2.

E' possibile farlo?Come?

Non so se si debba creare una macro (non ne ho mai fatte) oppure se si possono usare le condizioni SE....ecc...

Grazie

Re: Sottrarre un valore fino al raggiungimento di un range!C

Inviato: sabato 25 settembre 2010, 9:36
da pescetti
Studia la funzione RESTO (premi F1 in Calc poi cerca Resto). Ad esempio,

Codice: Seleziona tutto

=RESTO(340;90)
fornisce 70. Non capisco dal tuo esempio il nesso tra 250 e 90, comunque questa funzione dovrebbe andare bene per te, magari combinata con altre se il tuo caso è più complesso.

Re: Sottrarre un valore fino al raggiungimento di un range!C

Inviato: sabato 25 settembre 2010, 11:03
da kokkolos
Ho sbagliato, perchè ho scritto due esempi e nel momento in cui ho corretto ho dimenticato di cancellare quella parte :) ...

Non penso che vada bene questa funzione...perchè possono uscire anche valori tipo 12000,12398 ecc.... e calc deve sottrarre di 90 in 90 fino ad arrivare ad un valore compreso tra 1 e 90...

Re: Sottrarre un valore fino al raggiungimento di un range!C

Inviato: sabato 25 settembre 2010, 16:36
da lucky63
kokkolos ha scritto:... deve sottrarre di 90 in 90 fino ad arrivare ad un valore compreso tra 1 e 90...
Salve
Inserire quanto segue nella cella D19:

=SE(C19<C2+1;"";SE(C19-C2*QUOZIENTE(C19;C2)=0;C2;C19-C2*QUOZIENTE(C19;C2)))

Veda allegato.
Saluti

Re: Sottrarre un valore fino al raggiungimento di un range!C

Inviato: sabato 25 settembre 2010, 20:06
da kokkolos
ciao...grazie 1000 , funziona...potresti spiegarmi passo passo il significato della funzione?
non capisco il quoziente e la moltiplicazione
Ti ringrazio! :)

Re: Sottrarre un valore fino al raggiungimento di un range!C

Inviato: sabato 25 settembre 2010, 21:28
da lucky63
kokkolos ha scritto:ciao...grazie 1000 , funziona...potresti spiegarmi passo passo il significato della funzione?
non capisco il quoziente e la moltiplicazione
Ti ringrazio! :)
Trattasi di una funzione SE nidificata che utilizza anche la funzione QUOZIENTE.

Non era poi così difficile da comprendere.
Bastava cercare la sintassi delle funzioni SE e QUOZIENTE nell'help di OOo.

Comunque vedo di spiegare.

SE(Test; FaiQuesto; OppureQuesto)

Test = C19<C2+1
Tradotto: se il valore della cella C19 è inferiore a quello della cella C2 più uno (ossia del valore del range +1)

FaiQuesto = “”
Tradotto: stringa nulla (lascia il contenuto della cella vuoto)

OppureQuesto = SE(C19-C2*QUOZIENTE(C19;C2)=0;C2;C19-C2*QUOZIENTE(C19;C2))
Tradotto: utilizza un'altra funzione SE(Test; FaiQuesto; OppureQuesto) dove:

Test = C19-C2*QUOZIENTE(C19;C2)=0
---> Notare che QUOZIENTE(Numeratore; Denominatore) restituisce la parte intera del Numeratore diviso dal Denominatore ossia quante volte il valore di range è contenuto nel numero da testare <---
Tradotto: se il numero da testare meno il range moltiplicato per le volte che il range è contenuto nel numero stesso è uguale a zero

FaiQuesto = C2
Tradotto: restituisce il valore del range (quello massimo corrispondente a C2)

OppureQuesto = C19-C2*QUOZIENTE(C19;C2)
Tradotto: restituisce il numero che si ottiene sottraendo al numero da testare il range moltiplicato per le volte che il range è contenuto nel numero stesso.

NOTA BENE:
Ho preferito fare riferimento a C2+1 e C2 anzichè rispettivamente ai valori 91 e 90 per permettere il funzionamento, volendo e/o caso necessità, anche con la variazione del range. Infatti variando il numero di range da 90 a 135 (o altro numero) si ottiene quanto voluto.

Saluti

Re: Sottrarre un valore fino al raggiungimento di un range!C

Inviato: domenica 26 settembre 2010, 0:44
da kokkolos
Ok molto chiaro...

problemuccio:

nella cella C19 c'è "=PRODOTTO(B19*L2)" e sembra che la funzione che mi hai mandato non legge il valore derivato dal calcolo presente nella C19 ma lo calcola solo se lo scrivo direttamente io...

Spero di essere stato comprensibile!

Grazie :)

Re: Sottrarre un valore fino al raggiungimento di un range!C

Inviato: domenica 26 settembre 2010, 11:48
da lucky63
kokkolos ha scritto:Ok molto chiaro...

problemuccio:

nella cella C19 c'è "=PRODOTTO(B19*L2)" e sembra che la funzione che mi hai mandato non legge il valore derivato dal calcolo presente nella C19 ma lo calcola solo se lo scrivo direttamente io...

Spero di essere stato comprensibile!

Grazie :)

Per ottenere il prodotto derivante dalla moltiplicazione del valore delle celle B19 e L2 bastava scrivere =B19*L2

La funzione PRODOTTO si usa generalmente per moltiplicare una serie di "argomenti" (maggiore di due e fino a un massimo di trenta) e ognuno di essi deve essere separato da PUNTOVIRGOLA.
Volendo mantenere l'uso della funzione PRODOTTO correggere in =PRODOTTO(B19;L2)

E' anche possibile mantenere la formula segnalata ma deve essere scritta senza le virgolette d'inizio e di fine.

Vedere files in allegato.

Saluti

.

Re: Sottrarre un valore fino al raggiungimento di un range!C

Inviato: lunedì 27 settembre 2010, 0:22
da kokkolos
non mi sono spiegato!

So bene come funziona il prodotto...l'ho scritto senza virgolette, era per precisare "nel forum" la formula utilizzata.

La cosa strana che accade è la seguente :

la cella D19 (della quale mi hai fornito la formulona) effettua il calcolo SOLO se scrivo manualmente un numero nella cella C19.

Ma il valore della C19 è un prodotto quindi espresso con la formula =PRODOTTOetc.etc.... La D19 non calcola il valore della C19 se è il risultato di qualche operazione ma solo se scritto manualmente.
Se variano i fattori di C19 questo (presenti in altre 2 celle), il valore di C19 cambia ma la D19 non legge il valore presente in C19.
Non so se è chiaro...Spero di si, rileggendolo un paio di volte si capisce ;)
Sono stato ripetitivo per far comprendere meglio...

Grazie 1000 :)

Re: Sottrarre un valore fino al raggiungimento di un range!C

Inviato: lunedì 27 settembre 2010, 2:18
da lucky63
kokkolos ha scritto:non mi sono spiegato!

So bene come funziona il prodotto...l'ho scritto senza virgolette, era per precisare "nel forum" la formula utilizzata.

La cosa strana che accade è la seguente :

la cella D19 (della quale mi hai fornito la formulona) effettua il calcolo SOLO se scrivo manualmente un numero nella cella C19.

Ma il valore della C19 è un prodotto quindi espresso con la formula =PRODOTTOetc.etc.... La D19 non calcola il valore della C19 se è il risultato di qualche operazione ma solo se scritto manualmente.
Se variano i fattori di C19 questo (presenti in altre 2 celle), il valore di C19 cambia ma la D19 non legge il valore presente in C19.
Non so se è chiaro...Spero di si, rileggendolo un paio di volte si capisce ;)
Sono stato ripetitivo per far comprendere meglio...

Grazie 1000 :)
Salve
Le ripropongo nuovamente di vedere il file Test2.ods già allegato in precedenza e che le allego nuovamente.

Nel file sono riprodotte esattamente le esigenze da lei segnalate.
Esaminandolo potrà notare che funziona perfettamente.
Variando uno qualsiasi dei valori contenuti in cella B19 e/o L2 viene ricalcolato il prodotto in C19 e automaticamente viene aggiornata anche la cella D19 indicando il nuovo range grazie al FORMULONE che le ho proposto e che pertanto mi risulta funzionare perfettamente.

Se fosse così gentile di allegare il suo file potrei esaminarlo e cercare di capire/risolverle la fonte del suo nuovo problema.

Saluti

Re: Sottrarre un valore fino al raggiungimento di un range!C

Inviato: lunedì 27 settembre 2010, 9:46
da kokkolos
Ecco il file...non capisco perchè da questo stranissimo problema...spero che con questo riesci a capire il problema!


ps: come elimino una macro dal documento? l ho utilizzata per la prima volta ma ora non so come toglierla!Grazie

Re: Sottrarre un valore fino al raggiungimento di un range!C

Inviato: lunedì 27 settembre 2010, 20:46
da lucky63
kokkolos ha scritto:Ecco il file...non capisco perchè da questo stranissimo problema...spero che con questo riesci a capire il problema!

ps: come elimino una macro dal documento? l ho utilizzata per la prima volta ma ora non so come toglierla!Grazie

Il presunto problema segnalato NON sussiste.
L'apparente non funzionamento della formula è legata al fatto che il valore di L2 è 90

Ne consegue che qualsiasi numero intero superiore a 1 si inserisca in B19 si ottiene in C19 un multiplo di 90.

La formula in D19 fa pertanto esattamente il suo dovere.
Infatti per:

B19 = 0 allora C19 = 0 e quindi D19 = (Stringa nulla) perchè il numero di C19 non supera il range (90).
B19 = 1 allora C19 = 90 e quindi D19 = (Stringa nulla) perchè il numero di C19 non supera il range.
B19 = 2 allora C19 = 180 e quindi D19 = 90 perchè il numero di C19 = 90 + 1 Volta il range.
B19 = 3 allora C19 = 270 e quindi D19 = 90 perchè il numero di C19 = 90 + 2 Volte il range.
B19 = 4 allora C19 = 360 e quindi D19 = 90 perchè il numero di C19 = 90 + 3 Volte il range.

B19 = 100 allora C19 = 9000 e quindi D19 = 90 perchè il numero di C19 = 90 + 99 Volte il range.
B19 = 300 allora C19 = 27000 e quindi D19 = 90 perchè il numero di C19 = 90 + 299 Volte il range.

Pertanto fino a quando L2 = 90 in D19 viene sempre restituito il valore 90 perchè tale è il risultato del conteggio

----------> Prova a cambiare anche il valore di L2 <--------------------------

Per quanto riguarda il problema Macro ho dato una sbirciata ma non conoscendo il nome della macro da eliminare ho preferito non fare danni o fornire informazioni errate.
Per risolvere il problema ed eliminare tutte le macro (non di sistema) suggerisco quanto segue:

Se all'avvio del file viene segnalata la presenza di Macro nel documento e come le stesse siano state bloccate dalle impostazioni di sicurezza (come da impostazioni standard) confermare con OK altrimenti eseguire comunque il file ed entrare poi nella gestione delle impostazioni di sicurezza da:
Strumenti - Opzioni - OpenOffice.org - Sicurezza - Sicurezza delle Macro - Livello sicurezza - Alto - OK
Salvare il file. Chiuderlo e riaprirlo. Viene segnalata la presenza di Macro bloccate dalle impostazioni di sicurezza. OK

Selezionare l'intero documento cliccando sul quadrattino posto in alto a sinistra tra la colonna A e la riga 1.
Copiare il tutto in memoria
Aprire un nuovo file di Calc (vuoto)
Posizionarsi nella cella A1
Incollare il contenuto della memoria.
Avrai un file esattamente uguale al precedente (escluso le macro extra).
Salva il nuovo file con il nome preferito.
Alla riapertura di quest'ultimo NON verrà segnalata la presenza di Macro.

Saluti

Re: Sottrarre un valore fino al raggiungimento di un range!C

Inviato: martedì 28 settembre 2010, 0:20
da kokkolos
Ok grazie mille :) Tutto risolto :)
Grazie ancora