Allora, sperando di aver intuito la richiesta, ti propongo una Userfunction su misura, che corrisponde a questo codice:
- Codice: Seleziona tutto
Function GoodLuck(ByVal myEstr As Long, ByRef MyTabb As Range) As Variant
Dim oArr(1 To 5), vArr, myMatch, J As Long, I As Long
Dim pCols As Long, myRow, cMax As Integer, ciPPa As Long
'
pCols = Application.Caller.Columns.Count
'
For I = 1 To 3
vArr = Application.WorksheetFunction.Index(MyTabb, 0, 1 + (I - 1) * 17)
myMatch = Application.Match(myEstr, vArr, 0)
If Not IsError(myMatch) Then
myRow = MyTabb.Cells(myMatch, 1 + (I - 1) * 17).Resize(1, 16).Value
cMax = 0
For J = 1 To pCols
cMax = 0
For k = 1 To 15
If myRow(1, 1 + k) > cMax And IsNumeric(myRow(1, 1 + k)) Then
cMax = myRow(1, 1 + k)
ciPPa = k
End If
Next k
oArr(J) = MyTabb.Cells(myMatch, 1 + (I - 1) * 17 + ciPPa).End(xlUp).Value
myRow(1, 1 + ciPPa) = 0
Next J
Exit For
End If
Next I
GoodLuck = oArr
End Function
Va messa in un Modulo standard del progetto vba del tuo file. Per questo, partendo da Excel:
-premi Alt-F11 per aprire l'editor delle macro
-Menu /Inserisci /Modulo
-copia il codice e incollalo nel frame vuoto di destra.
Poi torna sul foglio BARI, seleziona le celle C11:F11, e scrivi questa formula nella barra della formula:
- Codice: Seleziona tutto
=GoodLuck(B11;$I$2:$BF$35)
Conferma con Contr-Maiusc-Enter, non il solo Enter
Avrai cosi' i risultati del numero posizionato in B11
Copia C11:F11 e incolla verso il basso per avere i risultati degli altri numeri elencati in B12 e successivi
Sugli altri fogli di lavoro userai lo stesso principio.
Tieni presente che la sintassi della funzione GoodLuck e' la seguente:
- Codice: Seleziona tutto
=GoodLuck(NumeroDaEsaminare;TabelloneConLeProbabilità)
Puoi usare tutti i metodi di indirizzamento previsti da Excel; ad esempio se la tabella dei numeri da esaminare relativi a Bari fosse in A2:A6 di Foglio1, la formula in B2:E2 di Foglio1 (da copiare poi verso il basso) sarebbe
- Codice: Seleziona tutto
=GoodLuck(A2;BARI!$I$2:$BF$35)
Spero sia di qualche utilita'...