Risolto Match in molteplici intervalli e IF

Stylus

Nuovo utente
28 Aprile 2016
15
1
Italy
Openoffice
0
Ciao a tutti,

Sto continuando nella creazione del mio skigame (direi che sono in ottimo punto) e mi sono imbattuto in nuovo scoglio, Allego file per la comprensione.

Si tratterebbe di automatizzare l'assegnazione delle posizioni nella griglia de foglio "Ranking" in relazione al foglio "WC Solden SL" (e quindi una volta fatto quello anche i successivi futuri)

Cercando brevemente di spiegare la situazione e il mio obiettivo:

Nel foglio WC Solden SSL, tra le altre cose, vi sono due tabelle con le posizioni degli sciatori nella prima e seconda manche.
Nella griglia presente nel foglio Ranking voglio che, individuato l'ID, venga assegnata automaticamente la posizione allo sciatore con l'id corrispondente, e fin qui ci sono arrivato con la semplice formula

=match(C7;'WC Solden SL'!H$65:H$94;0)

Ma la questione è un po' più complessa poiché:
  1. SE l'id dello sciatore non è presente nella tabella della seconda manche, voglio che vada a ricercare lo stesso ID nella tabella della seconda manche nelle posizioni tra la 31 e la 50 e mi restituisca appunto una di queste posizioni corrispondente
  2. SE il gap dello sciatore è NDF (Colonne M per la prima manche ed N per la seconda, ho applicato una formula che mi facesse risultare NDF a particolari condizioni di tempo) allora non deve essere restituita nella griglia il valore della posizione ma la scritta "NDF"
  3. SE l'id dello sciatore non è presente nelle due tabelle di match, mi restituisca la scritta "NP", non partito.
Personalmente ho provato questa formula, che nell'intenzioni voleva dire: cerca nell'intervallo della seconda manche se il risultato è <=30, altrimenti cerca nell'intervallo della prima manche nelle posizioni 31-50. Ma oltre a non funzionare, non soddisfava le altre due condizioni di cui avrei bisogno!.

=if(match(C6;'WC Solden SL'!H$65:H$94;0)<=30;(match(C6;'WC Solden SL'!H$65:H$94;0);match(c6;'WC Solden SL'!F42:H61;0)))

Se qualcuno sapesse aiutarmi, ne sarei grato!

Grazie!
 

Allegati

Berna11

Excel Expert
Moderatore
Expert
20 Febbraio 2016
5.970
213
Latina
Excel 2010
405
Ciao
stavo cercando di capire il file e quello che hai scritto ma, mi son fermato mel primo dubbio
perchè usi:

=match(C7;'WC Solden SL'!H$65:H$94;0)

partendo da riga 65 e non consideri quello da riga 12?

Inoltre:
SE l'id dello sciatore non è presente nella tabella della seconda manche, voglio che vada a ricercare lo stesso ID nella tabella della seconda manche nelle posizioni tra la 31 e la 50 e mi restituisca appunto una di queste posizioni corrispondente
insomma in quale manche va cercato?
Per un futuro evita di allegare tutto il progetto ma, solo i fogli e qualche riga d'esempio per poter ricavare la formula che ti necessita.
 

Stylus

Nuovo utente
28 Aprile 2016
15
1
Italy
Openoffice
0
Ciao!
Innanzitutto, scusami per l'allegato.

Ho fatto un errore nell descrizione

SE l'id dello sciatore non è presente nella tabella della seconda manche, voglio che vada a ricercare lo stesso ID nella tabella della prima manche nelle posizioni tra la 31 e la 50 e mi restituisca appunto una di queste posizioni corrispondente,.

ed è proprio per questo motivo che parto da riga 65, che corrisponde all'inizio della tabella della seconda manche, e non da riga 12 che è la riga dove inizia la tabella della prima manche e dove dovrebbe cercare la formula se non trova l'id nella tabella della seconda manche.

Allego nuovo excel "alleggerito" dalle pagine non necessarie (e una piccola modifica sulla pagina delle manche, ma niente di rilevante, solo dei tasti d'accesso diretto alle macro)
 

Allegati

Berna11

Excel Expert
Moderatore
Expert
20 Febbraio 2016
5.970
213
Latina
Excel 2010
405
Ok, chiarito l'equivoco cerchiamo di proseguire che non è semplice.
Intanto il file ultimo da dei problemi ho continuato sul primo.

seguendo l'indicazione della tua formula l'ho modificata in:

=SE.ERRORE(CONFRONTA(C6;'WC Solden SL'!H$65:H$94;0);CONFRONTA(C6;'WC Solden SL'!H$42:H$61;0))

quindi cerca l'id nella 2 manche se non trova va sulla 1 manche dalla posizione 31 quindi da riga 42 a 61.
Penso questa formula la vuoi in M4 ma, messa li e trascinata in basso,
da una serie di errori in quanto le celle delle colonne precedenti fanno dei calcoli
in base a colonna M.
SE il gap dello sciatore è NDF (Colonne M per la prima manche ed N per la seconda, ho applicato una formula che mi facesse risultare NDF a particolari condizioni di tempo) allora non deve essere restituita nella griglia il valore della posizione ma la scritta "NDF"
Passando al 2 punto
ti deve restituire NDF sempre la stessa formula di sopra ?

Se sciatore nella 1 manche colonna M =NDF
SE sempre lo STESSO sciatore colonna N=sempre NDF ??
non ci sono nel file.
Quindi, nel caso lo stesso sciatore ha NDF in 1 manche colonna M
ed NDF 2 manche colonna N restituisce NDF?
e, se solo in una manche si trova NDF cosa fare?.

Poi vediamo il 3 punto.
 

Stylus

Nuovo utente
28 Aprile 2016
15
1
Italy
Openoffice
0
Ciao Berna e grazie della mano che mi stai dando.

Dunque, prima di tutto GRAZIE per la formula scritta, non conoscevo la formula IFERROR ed era esattamente quello di cui avevo bisogno. Ora restituisce la posizione nella griglia (guarda il nuovo allegato).

Solo un appunto: nel caso in cui l'ID viene ritrovato tra le righe H$42:H$61 (ovvero posizioni 31-50) della prima manche, nella griglia della pagina RANKING mi restituisce la posizione considerata nell'area presa in considerazione e non il valore della colonna POS (quindi, se l'ID viene ritrovato in H42, viene restituito il valore 1 e non 31, e questo non va bene perché poi nella griglia viene assegnato automaticamente il punteggio corrispondete alla posizione 1)

Sul punto 2, ovvero per ciò che riguarda NDF (che poi, mannaggia, avrei dovuto scrivere DNF:ROFLMAO:, ho corretto), mi sono accorto di essermi perso in un bicchiere d'acqua complicando le cose: ora ho inserito nella colonna "POS" un IF, che fa cambiare automaticamente il numero della posizione in DNF se nel gap risulta la scritta DNF. Resta comunque il problema della formula precedente, se lo sciatore è il trentesimo della lista ma è DNF, nella griglia in RANKING mi restituisce la posizione nella lista (ovvero la trentesima) invece del valore della cella corrispondente nella colonna, (ovvero 30 se ha un tempo, e DNF se invece non ce l'ha nel caso della seconda manche, e stessa cosa nella prima, 20 invece di 50 o DNF se un tempo non ce l'ha). Allego un xml aggiornato e con le tabelle nel foglio WC Soelden GS già compilate, forse può essere più intuitivo.

Se può essere utile la spiegazione dietro DNF è questa: Se inserisci, in una riga qualsiasi, della colonna time, il valore 2401:04:11.402 nella colonna GAP uscirà la scritta DNF, è un modo creato per simulare uno sciatore che non riuscisse a finire la prova, nella formula è L(2)<50 .

Il punto 3 serve appunto ad evitare che restituisca #N/A in caso non trovi l'ID, (rendendo poi invalida la somma con gli altri valori che poi potrebbero essere presenti nelle successive celle della riga) dunque, sarebbe necessario che, nel caso non trovasse l'ID nelle due aree di riferimento (2 manche e 1, manche da posizioni 31 a 50), restituisse un cella vuota o con scritta NP.
 

Berna11

Excel Expert
Moderatore
Expert
20 Febbraio 2016
5.970
213
Latina
Excel 2010
405
Ciao S @Stylus
hai dimenticato l'allegato
spero riesco a capire qualcosa in più mettimi i valori a mano dove la formula da errore in modo da capire cosa intendi.
 
  • Like
Reactions: Stylus

Stylus

Nuovo utente
28 Aprile 2016
15
1
Italy
Openoffice
0
Ciao S @Stylus
hai dimenticato l'allegato
spero riesco a capire qualcosa in più mettimi i valori a mano dove la formula da errore in modo da capire cosa intendi.
Mannaggia Ame, ecco a te. Nel frattempo continuando a lavorarci ho aggiunto altre pagine e modificato colori, ma non farci caso, resta su quelle due pagine.

Ti ho fatto anche uno screenshot, guarda, la formula da te indicata funziona, ma ha le controindicazioni che ti ho scritto e ora cerco di rispiegarti meglio.



Il valore richiamato è 28, perchè nella seconda manche Dominik Paris con ID 1 è presente sulla 28esima riga, la posizione però scritta nella colonna POS, come vedrai, è DNF, quindi vorrei che risultasse DNF e non 28, altrimenti viene assegnato il punteggio corrispondente (e similmente deve accadere se invece l'ID non è presente nella seconda manche ma nella prima manche tra le posizioni 31-50, viene infatti richiamato il valore corrispondente alla riga dell'intervallo preso in considerazione e non la posizione effettiva corrispondente nella colonna POS). Allo stesso modo vorrei rimanesse lo spazio vuoto o ci fosse una scritta NP (indifferente) se l'ID non venisse trovato negli intervalli selezionati (dunque lo sciatore non c'è) per non invalidare il totale complessivo con una scritta d'errore.

Edit; l'xml è diventato troppo pesante x essere allegato, faccio l'upload su server esterno, ecco a te
 

Berna11

Excel Expert
Moderatore
Expert
20 Febbraio 2016
5.970
213
Latina
Excel 2010
405
Ciao, S @Stylus

vediamo se ci siamo
usa:
=SE.ERRORE(SE.ERRORE(INDICE('WC Solden GS'!$F$65:$F$94;CONFRONTA(C6;'WC Solden GS'!$H$65:$H$94;0));INDICE('WC Solden GS'!$F$42:$F$61;CONFRONTA(C6;'WC Solden GS'!$H$42:$H$61;0)));"NP")

alla fine ho messo NP se vuoi cella vuota togli NP e lascia le ""
Se non ci siamo fammi qualche esempio non solo il 28 di prima.
 
  • Like
Reactions: Stylus

Stylus

Nuovo utente
28 Aprile 2016
15
1
Italy
Openoffice
0
Bingo! 😃
Grazie Berna! Funziona alla perfezione! Risultato Perfetto!
A questo punto il mio ultimo grande scoglio è stato sormontato! Ora è solo un lungo copia e incolla di fogli che ho già preparati ed il mio gioco sarà pronto e sarò lieto di presentarvelo quanto prima, grazie!

Ciao, S @Stylus

vediamo se ci siamo
usa:
=SE.ERRORE(SE.ERRORE(INDICE('WC Solden GS'!$F$65:$F$94;CONFRONTA(C6;'WC Solden GS'!$H$65:$H$94;0));INDICE('WC Solden GS'!$F$42:$F$61;CONFRONTA(C6;'WC Solden GS'!$H$42:$H$61;0)));"NP")

alla fine ho messo NP se vuoi cella vuota togli NP e lascia le ""
Se non ci siamo fammi qualche esempio non solo il 28 di prima.
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!