Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
Analizziamo nel dettaglio DJI RS 5, l'ultimo arrivato della famiglia Ronin progettato per videomaker solisti e piccoli studi. Tra tracciamento intelligente migliorato e ricarica ultra rapida, scopriamo come questo gimbal eleva la qualità delle produzioni.
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D è la nuova CPU gaming di riferimento grazie alla 3D V-Cache di seconda generazione e frequenze fino a 5,6 GHz. Nei test offre prestazioni superiori a 9800X3D e 7800X3D, confermando la leadership AMD nel gaming su PC.
Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 17-05-2007, 20:01   #1
GlasgowKiss
Junior Member
 
Iscritto dal: May 2007
Messaggi: 5
[EXCEL] Sommare celle in un intervallo stabilito che rispettino dei parametri

Salve, ho un problema, difficile spiegarlo nel topic:

gestisco classifiche ecc per scommesse sportive, vorrei cambiare metodo, cioè ricavare tutta la classifica attraverso i semplici risultati di ogni giornata.
ho ricavato tutto quanto (vittorie, sconfitte, pareggi ecc) mi manca solo la somma gol.

ho ad esempio questo:

Squadra1 - squadra2 2 - 0
Squadra2 - squadra3 0 - 0
Squadra4 - squadra2 1 - 2

ripetuto ovviamente per tutte le giornate di un campionato.


come faccio a far sommare automaticamente tutti i gol che ha fatto squadra1,2 ecc??


in modo da avere la classifica completa dei gol fatti e subiti...

si potrebbe fare selezionando manualmente tutte le celle con i risultati di ogni squadra, ma sarebbe un lavoro sporco,nonchè lunghissimo, lo scopo è automatizzare tutto quanto e far ricercare le giuste caselle da sommare.


qualcuno ha la soluzione?
GlasgowKiss è offline   Rispondi citando il messaggio o parte di esso
Old 18-05-2007, 00:28   #2
GlasgowKiss
Junior Member
 
Iscritto dal: May 2007
Messaggi: 5
raga, ma nessuno sa un metodo?
GlasgowKiss è offline   Rispondi citando il messaggio o parte di esso
Old 18-05-2007, 10:34   #3
akyra
Senior Member
 
L'Avatar di akyra
 
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
quello che vuoi fare tu si può soltanto se conosci il vba (Visual Basic for Applications) che sta dietro ad Excel e a tutti i software del pacchetto Office.

Così su due piedi mi verrebbe una soluzione di questo tipo: si potrebbe creare una collezione di interi, indicizzabile col nome delle squadre, e ogni volta che una di queste compare in una delle partite, aggiunge al relativo nodo della collezione i gol fatti...

il problema principale sta sul fatto che ci sono (come al solito quando si ha a che fare con automazione su Excel) delle difficoltà implementative dovute a come il foglio è organizzato.
Mi spiego meglio: come sono memorizzati i risultati delle partite?

in un'unica cella? quindi in (ad es.) B10 = "squadra1 - squadra2 = 3-0"

in celle separate? quindi B10 = squadra1 ; C10 = squadra2 ; D10= 3 ; E10 = 0

o in quale altro modo?
...più dati ci sono per cella, più difficile è estrarli, e più possibilità ci saranno che l'algoritmo che esegue il calcolo dia errori imprevisti (ad es: cosa succede se ad un certo punto il separatore delle squadre diventa ":" invece che "-")...tanto per farti capire con un esempio: assumiamo che i dati sian 2 celle separate, in questo modo:

B10 = "squadra1 - squadra2"
C10 = "3 - 0"

bene, per riuscire a carpire i dati che ci interessano occorrerebbe fare un algoritmo di questo tipo (pseudocodice):

Codice:
1)while(isnull(B10)= false)    /*esegue il ciclo finchè non incotra una cella vuota*/

2) nome_squadra = estrai la stringa più lunga dalla cella B10, a SINISTRA del "-"

3) gol_squadra = estrai la stringa più lunga dalla cella C10, a SINISTRA del "-"

4) lista_gol_squadre(nome_squadra).golFatti = lista_gol_squadre(nome_squadra).golFatti
 + Converti_In_Intero(gol_squadra)

5)nome_squadra = estrai la stringa più lunga dalla cella B10, a DESTRA del "-"

6)gol_squadra = estrai la stringa più lunga dalla cella C10, a DESTRA del "-"

7) lista_gol_squadre(nome_squadra).golFatti = lista_gol_squadre(nome_squadra).golFatti 
+ Converti_In_Intero(gol_squadra)

8)fine_ciclo_while
Ipotizzando, naturalmente, che tale ciclo si fermi non appena trova una cella vuota, cioè non ci sono più partite da calcolare.

io l'idea l'ho lanciata, bisogna vedere se tu conosci il vba oppure no...
__________________

Ultima modifica di akyra : 18-05-2007 alle 10:47.
akyra è offline   Rispondi citando il messaggio o parte di esso
Old 18-05-2007, 12:07   #4
GlasgowKiss
Junior Member
 
Iscritto dal: May 2007
Messaggi: 5
dunque, grazie innazitutto per la risposta.

allora ho giò provveduto ad estrarre il tutto in modo da avere in ogni cella un singolo dato, la situazione al momento è questa:

esempio

|SQUADRA1|....|SQUADRA2|...|2|...|0|

(i puntini sono giusto per far capire il distaco tra le celle)


ho piu o meno capito quello che intendi (qualcosa di VB ne mastico, ma applicato ai fogli di excel ho poca esperienza), l'unica cosa è che facendo come dici, dovrei scrivere una riga di codice per ogni partita giocata, tipo se son 300 partite, devo scrivere un'algoritmo per ognuna o sbaglio?


#edit

uhm no scusami, non avevo letto del ciclo finche trova una cella vuota!

allora il quesito è un'altro

se tipo le giornate del campionato sono poste cosi:
GIORNATA 1

A-B 2-0
C-D 0-0

GIORNATA 2

A-B 0-0
ecc ecc

cioè tra una giornata e l'altra c'è uno spazio, quindi il ciclo si fermerebbe no?

Ultima modifica di GlasgowKiss : 18-05-2007 alle 12:09.
GlasgowKiss è offline   Rispondi citando il messaggio o parte di esso
Old 18-05-2007, 21:55   #5
akyra
Senior Member
 
L'Avatar di akyra
 
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
per come è concepito il cilco ora sì...se poi vuoi mettere un'altra condizione di fine ciclo, allora se ne può parlare...però su due piedi mi veniva quella...
come hai potuto notare la prima necessità da soddisfare sta nel mettere il foglio in un ordine coerente che sia sempre costante.
__________________
akyra è offline   Rispondi citando il messaggio o parte di esso
Old 18-05-2007, 23:41   #6
GlasgowKiss
Junior Member
 
Iscritto dal: May 2007
Messaggi: 5
uhm ok...diciamo che il foglio è ben ottimizzato,

mi daresti solo una mano a buttare giu un po di codice?
giusto il tempo che prendo un po di dimestichezza con il vba.


io ora ho il foglio in queste due forme:

forma 1:

|squadra1 - squadra2|...|0-0|

e nella forma 2:

|squadra1|...|squadra2|...|0|...|0|


quale mi conviene usare?

GlasgowKiss è offline   Rispondi citando il messaggio o parte di esso
Old 19-05-2007, 11:56   #7
akyra
Senior Member
 
L'Avatar di akyra
 
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
certamente!
soltanto che in questo preciso momento il tempo che ho è molto poco...da martedì ne avrò di più.

sarebbe meglio utilizzare il secondo layout, in quanto più semplice da manipolare. Infatti non richiede l'estrazioni dei dati da una stringa con altri valori, in quanto il dato nella cella è solamente "squadra1" oppure il risultato.

Per prima cosa bisogna inizializzare la struttura che conterrà i gol fatti di ogni squadra.
Quello che mi verrebbe da utilizzare è una collezioni di valori definiti da noi stessi.

Quindi prima di tutto creiamo un oggetto personalizzato che conterrà i dati.
Pertanto crei un nuovo modulo di classe, e sulla sua proprierà name lo chiami "datiSquadra".
Nel oggetto in questione inserisci
Codice:
public    golFatti As Integer
public    golSubiti As Integer
End Type
questa oggetto è una struttura dati contenente due interi (golfatti e golsubiti).
A questo punto definiamo la vera e propria funzione che inizializza la collezione delle squadre:

Codice:
Public Sub initStruttura(coll As Collection)
Dim datiSq As new datiSquadra
'per ogni squadra crea un nodo della collezione
End Sub
Questa routine pubblica prende come parametro una collezione a cui aggiungerà i nodi delle squadre.
qui dobbiamo metterci d'accordo su dove andare a reperire l'elenco delle squadra, e creeremo un ciclo che farà una cosa di questo tipo:

Codice:
while (ci sono squadre)
datiSq.golFatti =  0
datiSq.golSubiti =  0
coll.add datiSq, "nome_della_squadra"
questo pseudocodice ci dice che alla collezione viene aggiunto un nuovo nodo, con chiave "nome_della_squadra" (che deve essere univoco!!quindi 1 soltanto per ogni squadra), nel quale viene inserita la struttura da noi definita per memorizzare i gol fatti e subiti.
__________________

Ultima modifica di akyra : 19-05-2007 alle 11:59.
akyra è offline   Rispondi citando il messaggio o parte di esso
Old 19-05-2007, 12:57   #8
GlasgowKiss
Junior Member
 
Iscritto dal: May 2007
Messaggi: 5
beh certo, ovviamente nei momenti in cui hai tempo eh ti ringrazio


allora il tuo metodo mi sembra più che azzeccato, teoricamente ci sono,è molto chiaro, adesso devo solo capire come effettuare praticamente l'estrapolazione dei dati dai fogli di lavoro...

non ho ben capito questa riga però:

Dim datiSq As new datiSquadra

cioè per ogni squadra verrà creato un datiSq o cosa?

poi per comodità ho piazzato i risultati nel foglio "risultati", e le classifiche nel foglio "classifiche".

cmq grazie ancora eh, intanto vedo di smanettare e di cavarci qualcosa..
GlasgowKiss è offline   Rispondi citando il messaggio o parte di esso
Old 19-05-2007, 13:36   #9
akyra
Senior Member
 
L'Avatar di akyra
 
Iscritto dal: Feb 2004
Città: TREVISO
Messaggi: 902
azz, ho fatto un errore...

l'istruzione

Codice:
Dim datiSq As New datiSquadra
dichiara una variabile di tipo datiSquadra e inserisce un nuovo oggetto datiSquadra nella variabile...e come se tu dichiarassi di voler avere un contenitore per scarpe e poi ci mettessi dentro effettivamente le scarpe
anche se questo è giusto dal punto di vista sintattico, è concettualemente sbagliato in quanto devo creare un nuovo oggetto datiSquadra per ogni nuovo nodo della collezione...invece con quel codice assegneremmo ad ogni nodo lo stesso oggetto datiSquadra, di conseguenza se andassimo a aumentare i gol fatti di una certa squadra (nel nodo specifico della collezione) andremmo ad aumentare anche i gol di tutte le altre squadre.
In pratica ogni nodo squadra punterebbe allo stesso oggetto datiSquadra, invece che ad uno suo specifico.

quindi bisogna correggere il codice in questo modo:

Codice:
Public Sub initStruttura(coll As Collection)
Dim datiSq As datiSquadra
'per ogni squadra crea un nodo della collezione
'nel ciclo esegui questa istruzione
set datiSq = new datiSquadra
'ecc ecc...
End Sub
la variaible datiSq viene inizializzata di volta in volta con un nuovo oggetto datiSquadra.
...questa è la teoria alla base della programmazione ad oggetti...
__________________

Ultima modifica di akyra : 19-05-2007 alle 13:44.
akyra è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
SpaceX vuole portare nello Spazio 1 mili...
Realme 16: il nuovo mid-range che si isp...
DAZN lancia il piano Full Mobile a 19,99...
Samsung Galaxy S26, ormai è tutto...
Smartphone sempre più cari: super...
L'ultima puntata di Falsissimo rimossa d...
NASA Perseverance ha utilizzato percorsi...
Blue Origin sospende per almeno due anni...
Stampanti, Los Angeles verso il divieto ...
Roscosmos Amur: il razzo spaziale riutil...
Robot aspirapolvere per tutte le tasche:...
Accedere alle mail di un lavoratore lice...
Amazon Haul scatenato: migliaia di prodo...
Amazon Seconda Mano rilancia: sconto ext...
Super prezzo Amazon per ECOVACS DEEBOT T...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 07:11.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v