Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

(Sempre) cerca.verticale #valore

Ultimo Aggiornamento: 23/07/2015 22:36
Post: 40
Registrato il: 09/10/2013
Città: SIRACUSA
Età: 39
Utente Junior
Office 2019
OFFLINE
17/07/2015 21:02

ragazzi,
al solito litigo con il cerca.vert e non capisco dove sia l'errore.

premetto che allego un piccolo file d'esempio per rendere meglio quello che proverò a spiegarvi :

FOGLIO1
da A1 a A10 ho dei nominativi, sulla colonna B1 a B10 ho altri nominativi, sulla colonna C e D (sempre da 1 a 10) ho i rispettivi risultati in decimali.
così via per circa una 50tina di colonne....dove insettimana in settimana questi nominativi possono invertirsi.

FOGLIO2
A1 mettendo il nominativo che mi interesa cercare, di sotto ho delle celle che midovrebbero ricercare il nominativo e i risultati. ma non funziona e sopratutto non riesco a capire il perchè da oggi pomeriggio!

mi potreste dare una mano a capire l'errore? [SM=x423042] [SM=x423043] [SM=x423023]




_________________________________________________________________
WIN 10 EXCEL 2019
(non excell/exchel/excellh/lesechel)
<---Hofinalmenteaggiustatolabarraspaziatrice--->
Post: 22
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Junior
Excel2019
OFFLINE
17/07/2015 22:26

Ciao Ivano,
non credo ci sia errore nella formula solo che gli chiedi qualcosa che non può fare. La funzione CERCA.VERT ricerca un dato NELLA PRIMA COLONNA di una matrice (tu, invece, vorresti che cercasse nella seconda colonna).
A mio avviso dovresti "mischiare" due Cerca.Vert dove la seconda ti cerca nella matrice Foglio1!$B$7:$D$11 (mettendo la B al posto della A)
Ciao (e fammi sapere),
Mario
Post: 40
Registrato il: 09/10/2013
Città: SIRACUSA
Età: 39
Utente Junior
Office 2019
OFFLINE
17/07/2015 22:37

Ciao Marius,
grazie per la risposta.

se la faccio partire dalla colonna B, effettivamente non da errore, ma la lista è molto lunga e con più settimane e non penso di semplificare il lavoro....

c'è un modo per invertire/alternare la ricerca? cioè quando mario è inserito nella colonna B mi estrapola prima il compagno della A e poi B.

non so se ho reso l'idea?
_________________________________________________________________
WIN 10 EXCEL 2019
(non excell/exchel/excellh/lesechel)
<---Hofinalmenteaggiustatolabarraspaziatrice--->
Post: 1.605
Registrato il: 24/09/2008
Città: LATINA
Età: 69
Utente Veteran
2007-2010
OFFLINE
19/07/2015 18:09

Salve, visto che la ricerca va fatta 0 in colonna A oppure B

nel foglio riepilogo in B2 metti:
=SE(VAL.NON.DISP(INDICE(Foglio1!$A$1:$D$5;CONFRONTA($B$1;Foglio1!$A$1:$A$5;0);1)=$B$1);INDICE(Foglio1!$A$1:$D$5;CONFRONTA($B$1;Foglio1!$B$1:$B$5;0);1);$B$1)


in C2:
=SE(VAL.NON.DISP(CERCA.VERT($B$1;Foglio1!$A$1:$D$5;2;0));"";CERCA.VERT($B$1;Foglio1!$A$1:$D$5;2;0))&SE(VAL.NON.DISP(CERCA.VERT($B$1;Foglio1!$B$1:$D$5;1;0));"";CERCA.VERT($B$1;Foglio1!$B$1:$D$5;1;0))

con la stessa logica anche colonna D ed E.
Naturalmente per ogni gruppo va cambiato il riferimento come avevi fatto tu.
Ti rimando il file ho inserito un menu a tendina in B1

Un saluto
Berna11
-----------
Excel-2007-2010
Post: 2.638
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Veteran
2013
OFFLINE
19/07/2015 19:14

>>>c'è un modo per invertire/alternare la ricerca?
=SE(VAL.ERRORE(domanda);"non vero";"vero")

B2=SE(VAL.ERRORE(CERCA.VERT($B$1;Foglio1!$A$1:$D$5;1;0));INDIRETTO("Foglio1!A"&CONFRONTA($B$1;Foglio1!B$1:B$5;0));CERCA.VERT($B$1;Foglio1!$A$1:$D$5;1;0))
C2=SE(VAL.ERRORE(CERCA.VERT($B$1;Foglio1!$A$1:$D$5;1;0));INDIRETTO("Foglio1!B"&CONFRONTA($B$1;Foglio1!B$1:B$5;0));CERCA.VERT($B$1;Foglio1!$A$1:$D$5;2;0))
D2=SE(VAL.ERRORE(CERCA.VERT($B$1;Foglio1!$A$1:$D$5;1;0));INDIRETTO("Foglio1!C"&CONFRONTA($B$1;Foglio1!B$1:B$5;0));CERCA.VERT($B$1;Foglio1!$A$1:$D$5;3;0))
E2=SE(VAL.ERRORE(CERCA.VERT($B$1;Foglio1!$A$1:$D$5;1;0));INDIRETTO("Foglio1!D"&CONFRONTA($B$1;Foglio1!B$1:B$5;0));CERCA.VERT($B$1;Foglio1!$A$1:$D$5;4;0))


per la terza riga devi modificare le formule dove ricercare ex $A$1:$D$5 in $A$7:$D$11 ecc ecc
Sarebbe meglio trovare una soluzione in VBA

Ciao Berna11, mi sono accavalcato
[Modificato da raffaele1953 19/07/2015 19:15]
Excel 2013
Post: 2.639
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Veteran
2013
OFFLINE
20/07/2015 01:29

Ho preparato un codice che prima cancella, dopo copia i dati nel foglio2.
NB che nel foglio1 ad ogni tabella ci deve essere il numero (come nell'esempio 1°,2°,3°ecc ecc)
Excel 2013
Post: 23
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Junior
Excel2019
OFFLINE
21/07/2015 13:00

Ti allego il tuo file "riveduto" con VBA (il titolo è CERCA_VERT)
Scrivi un nome nella riga 10 ed i valori ti compariranno immediatamente sotto. Adattalo alle tue esigenze.
Ciao,
Mario
Post: 24
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Junior
Excel2019
OFFLINE
21/07/2015 13:01

Ti allego il tuo file "riveduto" con VBA (il titolo è CERCA_VERT)
Scrivi un nome nella riga 10 ed i valori ti compariranno immediatamente sotto. Adattalo alle tue esigenze.
Ciao,
Mario
Post: 25
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Junior
Excel2019
OFFLINE
21/07/2015 13:02

Ti allego il tuo file "riveduto" con VBA (il titolo è CERCA_VERT)
Scrivi un nome nella riga 10 ed i valori ti compariranno immediatamente sotto. Adattalo alle tue esigenze.
Ciao,
Mario
Post: 26
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Junior
Excel2019
OFFLINE
21/07/2015 13:07

Scusa ma non mi fa caricare il file. Comunque, nell'Editor di Foglio2
inserisci quanto segue:

Option Compare Text
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ncd As String, nom As String, ele As String
Dim i As Integer, rg As Integer
If Not Intersect(Target, Range("B10:E10")) Is Nothing Then
ndc = Cells(10, 2).Text
For i = 1 To 23
nom = Sheets("Foglio1").Cells(i, 1).Text
If nom = "" Then GoTo 1
If nom = ndc Then
ele = "A" & i & ":D" & i
Sheets("Foglio1").Range(ele).Copy
If i >= 1 And i <= 5 Then rg = 11
If i >= 7 And i <= 11 Then rg = 12
If i >= 13 And i <= 17 Then rg = 13
If i >= 19 And i <= 23 Then rg = 14
Range("B" & rg).PasteSpecial (xlPasteValues)
End If
1 Next i
For i = 1 To 23
nom = Sheets("Foglio1").Cells(i, 2).Text
If nom = "" Then GoTo 2
If nom = ndc Then
ele = "A" & i & ":D" & i
Sheets("Foglio1").Range(ele).Copy
If i >= 1 And i <= 5 Then rg = 11
If i >= 7 And i <= 11 Then rg = 12
If i >= 13 And i <= 17 Then rg = 13
If i >= 19 And i <= 23 Then rg = 14
Range("B" & rg).PasteSpecial (xlPasteValues)
End If
2 Next i
End If
Application.CutCopyMode = False
End Sub

Ciao,
Mario
Post: 27
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Junior
Excel2019
OFFLINE
21/07/2015 15:10

Forse sono riuscito ad allegare il file

http://www.filedropper.com/cercavert

Post: 2.641
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Veteran
2013
OFFLINE
21/07/2015 22:36

Il problema è
Se ci sono macro in 2003 OK
Se ci sono macro in 2007 (superiori) NON li accetta.
Zippatte il file in Zip o RAR per allegare in questo Forum (che mantiene per anni l'allegato)
Excel 2013
Post: 41
Registrato il: 09/10/2013
Città: SIRACUSA
Età: 39
Utente Junior
Office 2019
OFFLINE
23/07/2015 22:36

Ciao Berna,
sei stato di grande aiuto! complimenti e grazie di cuore era proprio quello che mi serviva per estrarre dei dati importanti.

grazie anche a marius per l'interesse ;)


...come sempre -----> 100% esaudito [SM=x423017] [SM=x423069] [SM=x423063]
_________________________________________________________________
WIN 10 EXCEL 2019
(non excell/exchel/excellh/lesechel)
<---Hofinalmenteaggiustatolabarraspaziatrice--->
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 12:42. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com