Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] Creare una classifica avendo già il calendario

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel] Creare una classifica avendo già il calendario

Postdi dmitrij7 » 13/06/14 22:07

Salve, mi presento intanto. Mi chiamo Damiano e sono un neofita nell'utilizzo di Excel.

La mia intenzione era quella di creare una classifica autoaggiornante. Ho già creato il foglio Excel con il calendario delle partite e volevo inserire delle formule e/o delle macro in modo che, in base ai risultati che io vado ad inserire manualmente di volta in volta, in automatico assegnasse i punti in palio e quindi i vari posti.

Foglio excel
dmitrij7
Newbie
 
Post: 7
Iscritto il: 13/06/14 21:50

Sponsor
 

Re: [Excel] Creare una classifica avendo già il calendario

Postdi Anthony47 » 14/06/14 01:02

Ciao dmitrij7, benvenuto nel forum.
Se ti serve un file per il campionato mondiale di questi giorni allora potrebbe essere utile usare un lavoro pubblicato dall' utente Raimea qui: viewtopic.php?f=26&t=102089

Intanto puoi provare a inserire in H11 la formula
Codice: Seleziona tutto
=SOMMA(($E$4:$E$51<>"")*(($C$4:$C$51=H5)*($E$4:$E$51>$F$4:$F$51)+($D$4:$D$51=H5)*($F$4:$F$51>$E$4:$E$51))*3+($E$4:$E$51<>"")*(($C$4:$C$51=H5)*($E$4:$E$51=$F$4:$F$51)+($D$4:$D$51=H5)*($F$4:$F$51=$E$4:$E$51))*1)
Da confermare con Contr-Maiusc-Enter, non il solo Enter.
Questa dovrebbe calcolare il punteggio del Brasile; poi la copi a verso destra e verso il basso per calcolare i punteggi di tutte le altre squadre presenti nella tabella in H5:O8.
Userai poi Rango per calcolare il primo e il secondo, ... e cosi' via...

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Creare una classifica avendo già il calendario

Postdi dmitrij7 » 14/06/14 08:27

Grazie Anthony47 sia per la risposta che per il benvenuto.

Potresti spiegarmi in maniera semplice il contenuto del codice? Anche per capire come impostare la tabella dove andrò a creare la classifica e per capire da solo come rifare un codice simile senza copiarlo :D

Il lavoro pubblicato da Raimea è ad un livello molto elevato rispetto al mio :oops: però è molto utile :)
dmitrij7
Newbie
 
Post: 7
Iscritto il: 13/06/14 21:50

Re: [Excel] Creare una classifica avendo già il calendario

Postdi dmitrij7 » 14/06/14 09:14

Ho creato questo foglio modificato con la formula che mi hai dato.

Ho letto dopo che il tasto EDIT dura solo per 15 min.
dmitrij7
Newbie
 
Post: 7
Iscritto il: 13/06/14 21:50

Re: [Excel] Creare una classifica avendo già il calendario

Postdi Anthony47 » 14/06/14 13:35

Il file pubblicato da Raimea sara' pure complesso, ma in teoria piu' e' complesso il programma, piu' dovrebbe essere semplice il suo utilizzo.

Quanto alla spiegazione della formula:
=SOMMA immagino si capisce cosa fa.
($E$4:$E$51<>"") controlla che in colonna E ci sia un risultato
*(($C$4:$C$51=H5) controlla che la squadra della prima colonna sia quella di cui si vuole calcolare il punteggio...
*($E$4:$E$51>$F$4:$F$51) ...e che i gol fatti dalla prima siano superiori a quella della seconda squadra
+($D$4:$D$51=H5)*($F$4:$F$51>$E$4:$E$51)) oppure che la squadra cercata si in seconda colonna e che le seconda abbia fatto piu' gol della prima
*3 Se e' cosi' si assegnano 3 punti (per la vittoria)

+($E$4:$E$51<>"")*(($C$4:$C$51=H5)*($E$4:$E$51=$F$4:$F$51)+($D$4:$D$51=H5)*($F$4:$F$51=$E$4:$E$51))*1

Ripete lo stesso calcolo bovinamente (sarebbe possibile fare un paio di ottimizzazioni) sul pareggio, nel qual caso assegna 1 punto.

La formula lavora sulle righe 4:51 perche' e' in quell' intervallo che il calendario parite e' stato inserito.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Creare una classifica avendo già il calendario

Postdi dmitrij7 » 15/06/14 14:56

Grazie per la spiegazione veloce, anche se alcune cose le avevo capite provando a scrivere il codice a mano invece di copiarlo. Però non ho capito il significato del "$", anche se ho cercato su google ma le spiegazioni trovato mi lasciavano più confuso che persuaso.

Comunque, questo è il lavoro che ho svolto sinora. Se qualcuno può aiutarmi a completarlo mi farebbe un gran favore.

Grazie in anticipo.
dmitrij7
Newbie
 
Post: 7
Iscritto il: 13/06/14 21:50

Re: [Excel] Creare una classifica avendo già il calendario

Postdi robygragio » 18/06/14 22:30

dmitrij7, o preso il tuo foglio ho messo un po di grafica e qualche formula in piu non sono un esperto di formule ma sembra che funzioni il tutto, aspetto qualche consiglio da qualcuno piu esperto di me su come ordinare la classifica in automatico in base ai punti e alla differenza reti, per adesso lo fa solo in base ai punti, aspetto un po di consigli dai piu esperti per migliorare le formule :D ciao

Modiale 2014
Win7 + Office 2007 Ita
robygragio
Utente Junior
 
Post: 29
Iscritto il: 09/12/12 12:58

Re: [Excel] Creare una classifica avendo già il calendario

Postdi ninai » 19/06/14 07:15

un modo potrebbe essere: in P4
modifica in: =SOMMA(($E$4:$E$9<>"")*(($D$4:$D$9=O4)*($E$4:$E$9>$G$4:$G$9)+($H$4:$H$9=O4)*($G$4:$G$9>$E$4:$E$9))*3+($E$4:$E$9<>"")*(($D$4:$D$9=O4)*($E$4:$E$9=$G$4:$G$9)+($H$4:$H$9=O4)*($G$4:$G$9=$E$4:$E$9))*1)+(U4-V4)/10000
sempre matriciale
e ricopi in basso
unica accortezza, per evitare il segno meno nel caso di differenza goal negativa, modifica il formato personalizzato in : 0;0

stessa procedura da eseguire per gli altri gironi
w8 + Office 2010 Ita
ninai
Utente Senior
 
Post: 271
Iscritto il: 12/06/13 05:23
Località: prov. Messina

Re: [Excel] Creare una classifica avendo già il calendario

Postdi robygragio » 19/06/14 14:45

Grazie ninai Adesso funziona , stavo cercando di farlo con la macro stessa ma non ci riuscivo
Win7 + Office 2007 Ita
robygragio
Utente Junior
 
Post: 29
Iscritto il: 09/12/12 12:58

Re: [Excel] Creare una classifica avendo già il calendario

Postdi robygragio » 20/06/14 12:36

ho completato il file con la fase finale ma non riesco a proseguire, chi mi da una mano?

Mondiale 2014
Win7 + Office 2007 Ita
robygragio
Utente Junior
 
Post: 29
Iscritto il: 09/12/12 12:58

Re: [Excel] Creare una classifica avendo già il calendario

Postdi ninai » 20/06/14 16:33

se ho inteso bene il problema, in O81:
=SE(O(E78="";E79="");"";SE(E78>E79;D78;D79))
in O82
=SE(O(E84="";E85="");"";SE(E84>E85;D84;D85))

se gli altri schemi hanno le stesse distanze, basta copiare queste due formule, diversamente, basta adattare i riferimenti
w8 + Office 2010 Ita
ninai
Utente Senior
 
Post: 271
Iscritto il: 12/06/13 05:23
Località: prov. Messina

Re: [Excel] Creare una classifica avendo già il calendario

Postdi robygragio » 20/06/14 21:35

grazie ancora ninai, sai magari anche come far comparire la bandierina in parte al nome della squadra, e ultima cosa se sai come far uscire la squadra solo quando hanno finito di giocare tutte le partite del girone te nei sarei grato :D
Win7 + Office 2007 Ita
robygragio
Utente Junior
 
Post: 29
Iscritto il: 09/12/12 12:58

Re: [Excel] Creare una classifica avendo già il calendario

Postdi ninai » 21/06/14 03:00

ciao
per le bandierine non ti posso aiutare è una questione di codici (credo), io sono un misero "formulaio" :) , ci vuole gente seria :lol: .

Riguardo al far apparire la squadra solo dopo che si sono disputate tutte le partite del girone, credo che basti condizionare il collegamento alla cella, con la somma delle partite giocate.
in D78: =SE(SOMMA($Q$4:$Q$7)=12;O5;"")
OPPURE
=SE(CONTA.NUMERI($E$4:$E$9)=6;O5;"")

se è quello che chiedevi, è abbastanza facile da adattare, una delle due formule, nelle altre celle, per gli altri gironi, basta un po di pazienza.
w8 + Office 2010 Ita
ninai
Utente Senior
 
Post: 271
Iscritto il: 12/06/13 05:23
Località: prov. Messina

Re: [Excel] Creare una classifica avendo già il calendario

Postdi robygragio » 21/06/14 22:39

Ciao ninai, grazie ancora ho modificato come da suggerimento e va alla perfezzione,
File Mondiale 2014

in piu ho inserito una macro per inserire l'immagine in parte al nome ma non mi funziona, in un altro file funziona tipo questo

File Inserimento Immagine con Macro, aspettavo qualcuno piu esperto per dargli un occhiata :D
Win7 + Office 2007 Ita
robygragio
Utente Junior
 
Post: 29
Iscritto il: 09/12/12 12:58

Re: [Excel] Creare una classifica avendo già il calendario

Postdi robygragio » 24/06/14 12:10

ciao, sono ancora qui a disturbarvi, sono riuscito a trovare il modo di inserire le immagini in automatico, ma ad ogni variazzione di cella mi aggiunge e sovrappone sempre la stessa immagine e non cancella quella precedente.

Codice: Seleziona tutto
    OttaviFinale1Partita1 = Worksheets("Torneo").Range("D78")
    With ActiveSheet.Pictures.Insert("C:\Immagini\" & OttaviFinale1Partita1 & ".png")
        .Left = Range("C78").Left + 2
        .Width = Range("C78").Width - 7
        myDiff = Range("C78").Height - .Height
        .Top = Range("C78").Top + myDiff / 2
    End With
   
    OttaviFinale1Partita2 = Worksheets("Torneo").Range("D79")
    With ActiveSheet.Pictures.Insert("C:\Immagini\" & OttaviFinale1Partita2 & ".png")
        .Left = Range("C79").Left + 2
        .Width = Range("C79").Width - 7
        myDiff = Range("C79").Height - .Height
        .Top = Range("C79").Top + myDiff / 2
    End With
   
    OttaviFinale2Partita1 = Worksheets("Torneo").Range("D84")
    With ActiveSheet.Pictures.Insert("C:\Immagini\" & OttaviFinale2Partita1 & ".png")
        .Left = Range("C84").Left + 2
        .Width = Range("C84").Width - 7
        myDiff = Range("C84").Height - .Height
        .Top = Range("C84").Top + myDiff / 2
    End With
   
    OttaviFinale2Partita2 = Worksheets("Torneo").Range("D85")
    With ActiveSheet.Pictures.Insert("C:\Immagini\" & OttaviFinale2Partita2 & ".png")
        .Left = Range("C85").Left + 2
        .Width = Range("C85").Width - 7
        myDiff = Range("C85").Height - .Height
        .Top = Range("C85").Top + myDiff / 2
    End With

    OttaviFinale3Partita1 = Worksheets("Torneo").Range("D90")
    With ActiveSheet.Pictures.Insert("C:\Immagini\" & OttaviFinale3Partita1 & ".png")
        .Left = Range("C90").Left + 2
        .Width = Range("C90").Width - 7
        myDiff = Range("C90").Height - .Height
        .Top = Range("C90").Top + myDiff / 2
    End With
   
    OttaviFinale3Partita2 = Worksheets("Torneo").Range("D91")
    With ActiveSheet.Pictures.Insert("C:\Immagini\" & OttaviFinale3Partita2 & ".png")
        .Left = Range("C91").Left + 2
        .Width = Range("C91").Width - 7
        myDiff = Range("C91").Height - .Height
        .Top = Range("C91").Top + myDiff / 2
    End With
   
    OttaviFinale4Partita1 = Worksheets("Torneo").Range("D96")
    With ActiveSheet.Pictures.Insert("C:\Immagini\" & OttaviFinale4Partita1 & ".png")
        .Left = Range("C96").Left + 2
        .Width = Range("C96").Width - 7
        myDiff = Range("C96").Height - .Height
        .Top = Range("C96").Top + myDiff / 2
    End With
   
    OttaviFinale4Partita2 = Worksheets("Torneo").Range("D97")
    With ActiveSheet.Pictures.Insert("C:\Immagini\" & OttaviFinale4Partita2 & ".png")
        .Left = Range("C97").Left + 2
        .Width = Range("C97").Width - 7
        myDiff = Range("C97").Height - .Height
        .Top = Range("C97").Top + myDiff / 2
    End With
  Application.ScreenUpdating = True


se ce qualche anima pia che puo aiutarmi a risolvere il problema e se e possibile modificare il codice in modo che le immagini me li prenda da un foglio exel e non da una cartella sul pc
Win7 + Office 2007 Ita
robygragio
Utente Junior
 
Post: 29
Iscritto il: 09/12/12 12:58

Re: [Excel] Creare una classifica avendo già il calendario

Postdi Anthony47 » 24/06/14 13:37

Per il primo problema, il mio suggerimento e' che quando inserisci una immagini le assegni un nome seguendo una tua convenzione, es se le immagini sono relative alla cella C91 puoi chiamare ZC_C91; poi quando vai a reinserirne una prima cancelli l' immagine con quel nome.
Come avevamo fatto con il codice che trovi in questa discussione:
viewtopic.php?f=26&t=92794#p530525

Quanto a prelevare le immagini da un Foglio, potrebbe aiutarti, ella stessa discussione del link di prima, il codice pubblicato qui: viewtopic.php?f=26&t=92794#p530612

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Creare una classifica avendo già il calendario

Postdi robygragio » 25/06/14 14:54

Grazie Anthony della risposta e stato molto utile, unica cosa che non riesco a risolvere e che l'immagine compare solo dopo aver premuto Maisc+Ctrl+Invio per convalidare la formula, seno non funziona, per quanto riguarda le immagini prese dal foglio ho letto il Post ma non ci ho capito nulla forse e troppo confusionale come post o sono io che sono troppo scarso, se puoi guardare un attimo e darmi delle indicazioni te ne sarei grato.
qui il file modificato: File Mondiale 2014
e Qui la Cartella con le Icone: Icone Bandierine
Win7 + Office 2007 Ita
robygragio
Utente Junior
 
Post: 29
Iscritto il: 09/12/12 12:58

Re: [Excel] Creare una classifica avendo già il calendario

Postdi dmitrij7 » 25/06/14 19:10

Vorrei rigraziare tutti delle risposte, soprattutto robygragio per aver creato quel file facendo sembrare il mio una roba per bambini XD
Comunque, per il fatto delle bandierine non si potrebbe creare un secondo foglio, in una cella mettere la bandierina e in quella accanto il nome della nazionale e fare in modo che nelle celle del primo foglio dove ci vanno le bandierine inserire una macro o una formula per richiamare la bandierina dal secondo foglio? In questo modo si possono inserire le bandierine di tutte le nazionali che partecipano alle qualificazioni e il file può essere usato anche per i futuri mondiali :)
dmitrij7
Newbie
 
Post: 7
Iscritto il: 13/06/14 21:50

Re: [Excel] Creare una classifica avendo già il calendario

Postdi Anthony47 » 26/06/14 01:06

Ho guardato il file pubblicato da robygragio.
Chiaramente l' evento Worksheet_Change non si innesca quando una formula ricalcola un valore; e poiche' i nomi delle squadre finiscono in quelle celle per delle formule allora la macro che dovrebbe mettere le immagini non scatta.
Comunque, visto che aggiorni la classifica con la macro Workbook_SheetChange, ti suggerisco di inserire in questa stessa macro anche la compilazione degli Ottavi con relative bandiere.
Per il gruppo A questo vuol dire accodare a queste istruzioni (gia' presenti)
Range("N4:V7").Calculate
Range("N4:V7").Sort Key1:=Range("P4"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Queste ulteriori
Codice: Seleziona tutto
If [Q4] + [Q5] + [Q6] + [Q7] = 12 Then
'si compilano le celle degli ottavi:
    Range("d78").Value = Range("O4").Value   'In quale cella va il primo del girone
    Range("NON LO SO").Value = Range("O5").Value   'In quale cella va il secondo del girone?
'In queste prossime istruzioni bisogna indicare da quale cella va prelevata l' immagine e in quale va copiata:
    Call copImm("N4", "C78")    'prima del girone
    Call copImm("N5", "NON LO SO")    'seconda del girone
End If

Analoga aggiunta va fatta per ognuno degli altri blocchi cheaggiornano e ordinano la classifica di ogni girone.

Tutte le aggiunte richiamano una " Sub copImm" che va inserita o nello stesso modulo che poi la richiama oppure in un "Modulo" standard, es Modulo1, e che corrisponde a questo codice:
Codice: Seleziona tutto
Sub copImm(ByRef Sorg As String, ByRef Dest As String)
On Error Resume Next
    ActiveSheet.Shapes("ZC_" & Dest).Delete
On Error GoTo 0
'
   For Each Sh In ActiveSheet.Shapes
   aaa = Sh.TopLeftCell.Address(0, 0)
        If Sh.TopLeftCell.Address(0, 0) = Sorg Then
            Sh.Copy
            Range(Dest).Select
            ActiveSheet.Paste
            Selection.Name = "ZC_" & Dest
            Range(Dest).Select
           
            Exit For
       End If
    Next Sh
End Sub

In questo modo puoi fare a meno della Sub Worksheet_Change (che scatterebbe solo con input da tastiera), oltre che della componente che doveva cancellare le immagini prima di copiarne altre nella stessa posizione.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Creare una classifica avendo già il calendario

Postdi dmitrij7 » 26/06/14 11:43

Scusami robygragio facendo delle prove con il tuo file ho notato che ci sono degli errori con le formule delle semifinali come puoi vedere in questo file.
Mi sono permesso di correggere le formle aggiungendo anche le formule per la finale del 3°/4° posto che mancavano: Mondiali 2014_2. Però come puoi notare se lo scarichi ho provato ad inserire i risultati degli ottavi (tra l'latro ho inventato alcuni risultati per far si che comparissero tutte le 16 squadre degli ottavi) e appena scrivo tutti i risultati mi sono accorto che già scrive tutte le squadre fino alla finale senza inserire i risultati di quarti e semifinale (come puoi vedere nel file Mondiali 2014_2).
dmitrij7
Newbie
 
Post: 7
Iscritto il: 13/06/14 21:50

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Creare una classifica avendo già il calendario":


Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti

cron