PDA

View Full Version : [Open Office] Formula di calcolo su "Calc"


Arciere_Arcano
25-08-2007, 13:06
Salve a tutti.
Da Office sono passato recentemente ad OpenOffice.

Utilizzando il programma Calc (il clone di Excel) devo creare un file molto complesso (insomma.. con diversi calcoli che riesca a rendere in fine il tutto il più possibile automatico).

Vi espongo il problema.

Io ho 12 valori.

Di questi 12 valori devo prendere i 10 più alti e sommarli assieme.

Attenzione però.. può capitare che tra questi 10 valori possano esserci anche numeri uguali.
Io sempre e comunque devo prendere i 10 valori più alti e farli sommare assieme.

Quale formula devo utilizzare?

Facciamo un esempio di base per cercare di chiarire

(A)
(1) 12
(2) 11
(3) 8
(4) 24
(5) 32
(6) 11
(7) 10
(8) 10
(9) 21
(10) 22
(11) 10
(12) 10

Tra parentesi ho messo la A che si rifà alla "colonna".
E accanto i numeri nella parentesi sono le "righe"

Quindi.. in questo caso io prederò i 10 valori più alti che sono: 24 32 21 22 11 11 12 10 10 10.

A mano lo faccio, ok.. ma devo farglielo fare in automatico.. come posso fare?

Al termine di tutto questo poi.. un documento del genere, può essere visto tranquillamente con Excel? Oppure è tutta un'altra storia?

guldo76
25-08-2007, 14:48
=SOMMA(GRANDE($A$1:$A$12;RIF.RIGA($A$1:$A$10)))

ma assicurati che sia in forma di matrice, selezionando la casellina apposita nell'editor della formula, OPPURE premendo Ctrl+Shift+Invio anziché soltanto Invio per confermarla. Una volta confermata, la formula apparirà così:
{=SOMMA(GRANDE($A$1:$A$12;RIF.RIGA($A$1:$A$10)))}

Funzionerà anche su excel.

Arciere_Arcano
25-08-2007, 14:58
MITICO! Sei eccezionale!!! :D

Grazie molte!

Visto che ci siamo.. avrei altre questioni in merito.

Domanda generale:
Utilizzando solo il programma in questione, posso, Se ho una lista di nomi a cui sono associati dei numeri (come una classifica) farli ordinare in ordine decrescente? (dal maggiore al minore?)

Oppure è un qualcosa di "troppo avanti" per un programma di calcolo?

guldo76
26-08-2007, 16:19
Utilizzando solo il programma in questione, posso, Se ho una lista di nomi a cui sono associati dei numeri (come una classifica) farli ordinare in ordine decrescente? (dal maggiore al minore?)
Lo puoi fare con una tabella pivot.
Dal menù Dati → Data pilot
Tra le proprietà del campo "nome" gli puoi dire di metterlo in ordine decrescente per "valore", e volendo puoi anche dirgli di mostrarti solo i primi n nomi.

Arciere_Arcano
26-08-2007, 18:09
Ok.. ho visto il menù ma non ho ben capito il funzionamento! :doh:

Cerco di spiegare nel dettaglio.

Il file che sto preparando è per giocare al Fantabasket con i miei amici.
Noi siamo in 10 a giocare (quindi abbiamo 10 squadre).

In un foglio di calcolo, ho raccolto (giornata per giornata) i resoconti totali di ogni squadra.

Ecco qua un'immagine:

http://img49.imageshack.us/img49/7205/untitled2xw8.jpg

Spiego quindi le diverse parti:

Da B4 a B13 saranno raccolti i risultati totali delle squadre per quella giornata.

Da C4 a C13 saranno assegnati dei punti a seconda di chi ha fatto il puntegigo più alto nella colonna precedente (più punti fai, più punti prendi).

Da C16 a C25 saranno riportati i TOTALI dei punti segnati dalle squadre (alla prima giornata il punteggio sarà quello della prima giornata giocata, alla seconda verrà sommato il puntegigo relativo, poi verrà sommato quello della terza e così via, ogni giornata sarà incrementato quindi il punteggio di quel valore del punteggio ottenuto nella singola giornata.)
Ok.. discorso casinoso, esempio pratico:
1°giornata > Squadra A > 10 "Punteggio totale 10"
2°giornata > Squadra A > 30 "Punteggio totale 40"
3°giornata > Squadra A > 20 "Punteggio totale 60"
...

Quindi il "Punteggio totale" sarà quello che verrà visualizzato da C16 a C25. ^^

Nella colonna prente (da B16 a B25) invece, solito discorso, solo che ci saranno sommati i valori che giornata dopo giornata appariranno nelle celle da C4 a C13.

Tralasciando la tabella centrale (miglior giocatore della giornata), nelle tabelle di destra volevo visualizzare questo:

Nelle celle da F2 a F11 la lista dei nomi delle squadre (da quella con il punteggio più alto a quella con meno punti), e accanto il valore corrispondente (che saranno gli stessi numeri che appariranno nelle celle da B16 a B25).

Il discorso è stato molto contorto ma.. posso io trovare una maniera che risulti il più possibile automatica per fare tutto questo?

Arciere_Arcano
28-08-2007, 17:31
Spiegazione troppo contorta?
Troppo complicato?

:(

guldo76
28-08-2007, 22:29
La prossima volta non postare un'immagine così grande.
Cmq ho fatto la tabellina nel file allegato.

Arciere_Arcano
29-08-2007, 15:57
Scusa.. è che avendo un monitor grande avvolte dimentico un po' le dimensioni standard.. comunque ho sistemato. ;)

Ora controllo il file.. ti facico sapere.. grazie per l'appoggio tecnico! :)

EDIT

Ti ringrazio molto! :)
A prima vista sembra proprio ciò che avevo in mente, cercherò comunque di metterci mano per adattarlo al mio documento!
Grazie mille! ^^

Arciere_Arcano
29-08-2007, 19:30
Allora.. il file è una figata..
Cioè in linea di massima (non capendo comunque come funzioni) hai realizzato quello che avevo in mente.

Ora.. so che magari ti chiedo troppo, quindi se vuoi, e anche in comode rate e con calma.. mi spieghi nel dettaglio come hai fatto?

La cosa mi interessa assai.. :)

GiacoXp
29-08-2007, 20:06
puoi salvarlo in xls in modo che posso aprirlo con excel e farmi un po di cultura ?

Arciere_Arcano
29-08-2007, 22:21
Ecco qua. ^^

Arciere_Arcano
10-09-2007, 20:10
Riporto a galla il topic per richiedere l'intervento fatato di guldo76 (un mago dei fogli di calcolo) e di chiunue altro se la senta.. :P

Allego a questo post la fantomatica tabella di cui parlavo in precedenza (così almeno facciamo tutto passo passo e vedo se riesco ad imparare qualcosa anch'io!).

Quindi..

Facciamo un pezzo per volta.

Nelle caselle della colonna B, dalla 4 alla 13 (comprese), andranno i valori totali che la squadra in questione ha totalizzato in quella giornata.

Quindi con questa formula qua:

=$'Nome della squadra'.O15 (dove O15 è la casella dove quel numero viene visualizzato)

Otterrò il riferimento a quel valore che mi interessa.

Ok?
Bene.

A questo punto io in fondo alla giornata avrò i miei 10 valori.

Nella colonna C, dalla cella 4 alla 13 (comprese) andrò a scrivere un numero, che sarà il punteggio che la squadra ha totalizzato in quella giornata.
Chi fa più punti, prende più punti, come in tutti gli sport.

Allora, quindi, prima domanda:

C'è una qualche formula che confrontando i 10 valori della colonna B, mi assegna un numero (che stabilirò io)?
Cioè, es:

111
666
222
777
333
888
444
999
555
000

Tra questi dieci valori, io ho il valore più alto e quello più basso.
Quello con il valore più alto prenderà 10, quello con il valore più basso 0.

Così:

111 (2)
666 (7)
222 (3)
777 (8)
333 (4)
888 (9)
444 (5)
999 (10)
555 (6)
000 (0)

C'è una formula che mi può assegnare quei valori automaticamente?
Oppure devo farlo a mano? (che non è poi una gran fatica).

guldo76
10-09-2007, 22:22
Non c'era bisogno di leccare così spudoratamente :D
Cmq, dipende cosa vuoi che succeda coi valori ripetuti.
Se fai:
C4 =GRANDE($B$4:$B$13;RIF.RIGA(C1))
D4 =CONFRONTA(B4;$C$4:$C$13;0)
i valori ripetuti avranno lo stesso punteggio (colonna D), ma il punteggio successivo non sarà assegnato.
Es.:
valori: 40, 30, 30, 20
punteggio: 1, 2, 2, 4
cioè il punteggio "3" salta.

Arciere_Arcano
11-09-2007, 11:50
No no figurati.. ho dato a CESARE quel che è di CESARE! :D

Comunque.. effettivamente la puntualizzazione che fai è giusta.
Possono capitare situazioni in cui i punteggi delle squadre siano identici.

In quel caso purtroppo dobbiamo fare un riscontro "a mano", perchè praticamente facciamo il confronto dei giocatori e quindi mi sa che dovrò scriverli di mio pugno in quel caso.

Quindi servirebbe che il punteggio venga comunque assegnato "a scalare" senza salti.
Al termine della giornata magari modifico io a mano se ce n'è bisogno..

Arciere_Arcano
12-09-2007, 21:15
Piccola specifica.

I punteggi da assegnare alle squadre, saranno i seguenti: 10, 8, 6, 5, 4, 3, 2, 1, 0, 0.

(Dal primo al decimo classificato, giornata dopo giornata)

^^

guldo76
12-09-2007, 22:19
Vedi file allegato.
Colonna B: valore
C: valore ordinato
D: punteggio ordinato
E: punteggio
i punteggi segnati nella colonna E sono quelli cercati.
Con una precisazione: nel caso di valori ripetuti, nell'esempio il 66, il punteggio è pure ripetuto, come puoi notare.
Va eventualmente corretto a mano...

bye

guldo76
12-09-2007, 22:22
sorry... doppio.

Arciere_Arcano
13-09-2007, 15:58
Mmm... interessante.. così direi che va benissimo.

Domanda:Il valore ordinato è obbligatorio metterlo? Cioè.. il sistema da solo non trova i valori dal più grande al più piccolo anche se sono in ordine sparso?