| | Post: 136 | Registrato il: 09/10/2013
| Città: SIRACUSA | Età: 39 | Utente Junior | Office 2019 | | OFFLINE | |
|
29/12/2022 20:57 | |
Sera a tutti Dei,
oggi ho due quesiti per voi ma farò due post differenti.
il primo quesito è :
nel foglio in allegato ho nella colonna B una serie di numeri di targa auto e nelle altre tre colonne altri dati supplementari come il modello o un periodo di utilizzo. Ho aggiunto una formula di ricerca che funziona perfettamente tramite INDICE e CONFRONTA dove inserendo solo la targa lui mi trova tutti gli altri dati. Ma ho il problema che viene applicata solo sulla prima targa che trova! quindi se quella stessa targa è stata utilizzata più volte in periodi differenti non la vedo. come posso risolvere?
allego come sempre un file d esempio senza dati personali _________________________________________________________________
WIN 10 EXCEL 2019
(non excell/exchel/excellh/lesechel)
<---Hofinalmenteaggiustatolabarraspaziatrice---> |
|
| | Post: 2.768 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Veteran | 365 | | OFFLINE |
|
29/12/2022 21:08 | |
ciao
in H4 e tira in basso
=SE.ERRORE(INDICE(A$2:A$10000;AGGREGA(15;6;RIF.RIGA($1:$10000)/($B$2:$B$10000=$I$1);RIF.RIGA($A1)));"")
per le altre cambia l'indice |
| | Post: 136 | Registrato il: 09/10/2013
| Città: SIRACUSA | Età: 39 | Utente Junior | Office 2019 | | OFFLINE | |
|
29/12/2022 21:15 | |
Ciao Fede, che dirti, come sempre fantastik _________________________________________________________________
WIN 10 EXCEL 2019
(non excell/exchel/excellh/lesechel)
<---Hofinalmenteaggiustatolabarraspaziatrice---> |
| | Post: 1.049 | Registrato il: 24/06/2015
| Città: CATANIA | Età: 80 | Utente Veteran | Excel2019 | | OFFLINE |
|
29/12/2022 21:51 | |
Ciao
Prova questo codice (ti scriverà i risultati dalla cella M4 in poi)
Option Explicit
Sub Elenca()
Dim ur As Long, i As Long, a As Long
Dim targa As Range, varList()
Range("M:P").ClearContents
ur = Cells(Rows.Count, 1).End(xlUp).Row
Set targa = Range("B2:B" & ur)
For i = 1 To ur - 1
If targa(i) = Range("I1") Then
a = a + 1
ReDim Preserve varList(1 To a)
varList(a) = i + 1
End If
Next i
a = 3
For i = 1 To UBound(varList)
a = a + 1
Range("M" & a) = Cells(varList(i), 1)
Range("N" & a) = Cells(varList(i), 3)
Range("O" & a) = Cells(varList(i), 4)
Range("P" & a) = Cells(varList(i), 5)
Next i
End Sub
Fai sapere. Ciao,
Mario
|
| | Post: 138 | Registrato il: 09/10/2013
| Città: SIRACUSA | Età: 39 | Utente Junior | Office 2019 | | OFFLINE | |
|
30/12/2022 05:54 | |
Ciao Marius e grazie anche a te per l intervento e per il tempo dedicato ;) a presto _________________________________________________________________
WIN 10 EXCEL 2019
(non excell/exchel/excellh/lesechel)
<---Hofinalmenteaggiustatolabarraspaziatrice---> |
| | Post: 0 | Registrato il: 20/10/2017
| Città: FIRENZE | Età: 53 | Utente Junior | Microsoft 365 - LibreOffice 7.5 | | OFFLINE | |
|
02/01/2023 15:46 | |
federico460, 29/12/2022 21:08:
ciao
=SE.ERRORE(INDICE(A$2:A$10000;AGGREGA(15;6;RIF.RIGA($1:$10000)/($B$2:$B$10000=$I$1);RIF.RIGA($A1)));"")
Ciao Federico, ti posso chiedere cosa fa di preciso il pezzo AGGREGA?
In particolare il RIF.RIGA(...)/(...) a cui chiedi di essere uguale a $I$1.
Mentre immagino poi che il successivo RIF.RIGA($A1) serva "far scorrere" l'elenco.
Grazie. Excel 365 - LibreOffice 7.4 |
| | Post: 2.776 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Veteran | 365 | | OFFLINE |
|
02/01/2023 20:45 | |
ciao
=SE.ERRORE(INDICE(A$2:A$10000;AGGREGA(15;6;RIF.RIGA($1:$10000)/($B$2:$B$10000= $I$1);RIF.RIGA($A1)));"")
$I$1 è la targa da cercare e corrisponde solo ed esclusivamente a quella cella
e non si deve spostare ecco perchè gli assoluti
RIF.RIGA($A1)
è variabile
15 equivale a piccolo
ecco che trascinando in basso
RIF.RIGA($A1)=1
RIF.RIGA($A2)=2
RIF.RIGA($A3)=3
cerco il primo valore piu piccolo
il secondo
il terzo [Modificato da federico460 02/01/2023 20:46] |
| | Post: 1 | Registrato il: 20/10/2017
| Città: FIRENZE | Età: 53 | Utente Junior | Microsoft 365 - LibreOffice 7.5 | | OFFLINE | |
|
03/01/2023 12:56 | |
federico460, 02/01/2023 20:45:
ciao
=SE.ERRORE(INDICE(A$2:A$10000;AGGREGA(15;6;RIF.RIGA($1:$10000)/($B$2:$B$10000=$I$1);RIF.RIGA($A1)));"")
Ciao,
quindi il pezzo "RIF.RIGA($1:$10000)/($B$2:$B$10000)=$I$1" genera un vettore che è 1 quando è uguale alla targa inserita in I1 e 0 quando è diverso giusto?
Per cui, successivamente la funzione INDICE estrapola solo solo le righe che corrispondono al valore 1.
Ho capito bene?
Grazie. Excel 365 - LibreOffice 7.4 |
| | Post: 2.777 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Veteran | 365 | | OFFLINE |
|
03/01/2023 15:51 | |
ciao
PremPa
non funziona proprio così ma ci sei vicino
"RIF.RIGA($1:$10000)/($B$2:$B$10000)=$I$1
ti rende il numero di riga dove trova il valore cercato
esempio I1 è "ciao"
casa
ciao
casa
ciao
ciao
porta
renderà
#DIV/0!-2-#DIV/0!-4-5-#DIV/0!
perciò avrai il secondo valore dell'indice
il quarto
il quinto
|
|
|