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

cerca vert variabile

Ultimo Aggiornamento: 10/10/2017 23:00
Post: 409
Registrato il: 28/05/2011
Città: MILANO
Età: 43
Utente Senior
excel 2000/2007
OFFLINE
07/10/2017 08:36

Ciao a tutti,
nel foglio allegato c'è un cerca vert in C14 che dovrebbe trovare
il valore di B14 nel range assegnato nella colonna successiva.
Scrivo bistecca = 5
Scrivo crostata = 3
ecc..
la formula che ho inserito è questa:
=CERCA.VERT(B14;$F$2:$O$10;2;0)
ma il valore in B14 può variare e la formula non funziona più.
Un aiuto?
john
[Modificato da john_cash 07/10/2017 08:46]
---------------
excel 2007
Post: 2.268
Registrato il: 27/09/2010
Città: FIRENZE
Età: 61
Utente Veteran
Excel 2010
OFFLINE
07/10/2017 09:36

somma.se
Ciao,

se la formula deve restituire un numero prova

=SOMMA.SE(B2:N10;B14;C2:O10)

oppure

=MATR.SOMMA.PRODOTTO(--(B2:N10=B14);C2:O10)


Saluti
[Modificato da (Canapone) 07/10/2017 09:37]

Post: 432
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Senior
Excel2019
OFFLINE
07/10/2017 10:24

Ciao
in aggiunta all'ottimo suggerimento di Canapone (ciao Stefano) ti allego il file nel quale ho inserito questa macro
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A17, B17")) Is Nothing Then
        cat = Range("A17").Value: If cat = "" Then Exit Sub           'assume categoria scelta
        cn = Application.WorksheetFunction.Match(cat, Sheets("lista").Range("A1:O1"), 0)    'individua la colonna
        lt = Replace(Cells(1, cn).Address(False, False), "1", "")   'trasforma cn nella lettera relativa
        nr = Cells(Rows.Count, cn).End(xlUp).Row 'conta il numero di righe
        
    If Not Intersect(Target, Range("A17")) Is Nothing Then
        Application.EnableEvents = False
        newlist = lt & 2 & ":" & lt & nr
        'assegna a B17 il nuovo elenco
        Range("B17").Select
        With Selection.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                xlBetween, Formula1:="=" & newlist
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With
        Range("B17:C17").ClearContents
        Application.EnableEvents = True
    ElseIf Not Intersect(Target, Range("B17")) Is Nothing Then
        tipo = Range("B17").Value: If tipo = "" Then Exit Sub       'assume tipo scelto
        lt2 = Replace(Cells(1, cn + 1).Address(False, False), "1", "") 'trasforma cn nella lettera relativa
        colonna = lt & 2 & ":" & lt2 & nr
        prezzo = Application.WorksheetFunction.VLookup(tipo, Sheets("lista").Range(colonna), 2, 0) 'assume il prezzo
        Range("C17") = prezzo       'assegna a C17
    End If
End If
End Sub


Vi sono due convalida dati (di cui la seconda "variabile").
Fai sapere.
Ciao,
Mario
[Modificato da Marius44 07/10/2017 10:25]
Post: 1.114
Registrato il: 27/06/2011
Utente Veteran
excel 2007
OFFLINE
07/10/2017 10:56

ciao e un saluto a
Mario e Stefano [SM=x423028]

in alternativa ai loro suggerimenti:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sh As Worksheet
Dim ur As Long

On Error Resume Next
ur = Cells(Rows.Count, 2).End(xlUp).Row
Set sh = Sheets("lista")

With sh
    .Range("f14").Value = Application.WorksheetFunction.VLookup(Cells(ur, 2).Value, .Range("f2:g10"), 2, False)
End With

End Sub



ciao
Frank

edit:
allego il file nel quale ho spostato a destra la cella del risultato
[Modificato da tanimon 07/10/2017 11:03]







Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
Excel 2007 forse anche 2013 ... 2021 ... 365 e future...
Post: 409
Registrato il: 28/05/2011
Città: MILANO
Età: 43
Utente Senior
excel 2000/2007
OFFLINE
07/10/2017 11:21

Ciao a tutti,
ottimo lavoro.
Una curiosità per le formule di canapone:

=MATR.SOMMA.PRODOTTO(--(B2:N10=B14);C2:O10)

perchè qui il range si ferma in N o non in O?
john
---------------
excel 2007
Post: 1.633
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
07/10/2017 11:30

ciao
perchè le descrizioni dei prodotti che si cercano arrivano fino a col. N.

Nota: quella formula fa la somma degli importi se ci sono 2 voci uguali, es: se scrivi "naturale 1 L." otterrai 3, cioè 1,5 + 1,5 rispettivamente di O2 e O4

saluti
[Modificato da dodo47 07/10/2017 11:31]
Domenico
Win 10 - Excel 2016
Post: 433
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Senior
Excel2019
OFFLINE
07/10/2017 11:31

Salve a tutti

@tanimon
scusa Frank ma temo tu abbia sbagliato allegato. Quello che scarico è vuoto come macro.
Ma se nel modulo del Foglio lista aggiungo la tua macro non mi sembra accada nulla. Fra l'altro noto che l'intervallo è "statico", cioè si riferisce sempre a F2:G10

O sbaglio qualcosa io (sarà senza dubbio così).

Ciao,
Mario
Post: 2.269
Registrato il: 27/09/2010
Città: FIRENZE
Età: 61
Utente Veteran
Excel 2010
OFFLINE
07/10/2017 11:33

Ciao

nella formula

=MATR.SOMMA.PRODOTTO(--(B2:N10=B14);C2:O10)


B2:N10 e C2:O10 hanno la stessa estensione: prova a confrontare range con estensioni diverse e questa forma di matr.somma.prodotto non funzionerebbe più.


Il SOMMA.SE restituirebbe gli stessi risultati anche nella forma ridotta

=SOMMA.SE(B2:N10;B14;C2)

E' poco usata, ma funziona...

----------------

edit: scusate la sovrapposizione. Ciao Mario, ciao Domenico.
[Modificato da (Canapone) 07/10/2017 11:34]

Post: 1.115
Registrato il: 27/06/2011
Utente Veteran
excel 2007
OFFLINE
07/10/2017 11:44

Re:
Marius44, 10/7/2017 11:31 AM:

Salve a tutti

@tanimon
scusa Frank ma temo tu abbia sbagliato allegato. Quello che scarico è vuoto come macro.
Ma se nel modulo del Foglio lista aggiungo la tua macro non mi sembra accada nulla. Fra l'altro noto che l'intervallo è "statico", cioè si riferisce sempre a F2:G10

O sbaglio qualcosa io (sarà senza dubbio così).

Ciao,
Mario



ciao Mario,
non sbagli ho scritto le istruzioni dell'Evento Change ed ho allegato il file senza salvarlo........ [SM=x423059] [SM=x423060]


la cella risultato F14, riporta l'importo in colonna G del prodotto inserito nell'ultima cella della colonna B.

Lascio a John_Cash rendere eventualmente l'intervallo dinamico [SM=x423029]



Riallego il file.
Grazie per la segnalazione

EDIT:
ultima cosa,
la colonna B DEVE essere valorizzata con gli STESSI valori della colonna F
[Modificato da tanimon 07/10/2017 11:50]







Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
Excel 2007 forse anche 2013 ... 2021 ... 365 e future...
Post: 1.117
Registrato il: 27/06/2011
Utente Veteran
excel 2007
OFFLINE
09/10/2017 07:24

ciao,
visto che dopo questa hai aperto altre due discussioni,
ti ricordo che starei aspettando un riscontro.


Anche negativo!

ciao
Frank







Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
Excel 2007 forse anche 2013 ... 2021 ... 365 e future...
Post: 414
Registrato il: 28/05/2011
Città: MILANO
Età: 43
Utente Senior
excel 2000/2007
OFFLINE
09/10/2017 19:32

Ciao,
la soluzione che ho scelto sono le formule di canapone.
La macro di tanimon è interessante ma non so se blaglio io ma non va.
Scrivo in nome in E14 ma in F14 resta sempre 5,5.
john
---------------
excel 2007
Post: 1.118
Registrato il: 27/06/2011
Utente Veteran
excel 2007
OFFLINE
09/10/2017 21:15

Re: Re:
tanimon, 10/7/2017 11:44 AM:




EDIT:
ultima cosa,
la colonna B DEVE essere valorizzata con gli STESSI valori della colonna F



non devi inserire il valore di ricerca in E14!


La cella di ricerca è l'ultima cella della colonna B, variato il valore in colonna B con un valore uguale a quelli in colonna F,

il risultato lo trovi nella cella F14.

Ciao
Frank
[Modificato da tanimon 09/10/2017 21:20]







Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
Excel 2007 forse anche 2013 ... 2021 ... 365 e future...
Post: 415
Registrato il: 28/05/2011
Città: MILANO
Età: 43
Utente Senior
excel 2000/2007
OFFLINE
09/10/2017 22:22

Non riesco a capire dove inserire (la cella) il valore che poi esce in F14.
john
---------------
excel 2007
Post: 1.119
Registrato il: 27/06/2011
Utente Veteran
excel 2007
OFFLINE
09/10/2017 22:42

Re:
john_cash, 10/9/2017 10:22 PM:

Non riesco a capire dove inserire (la cella) il valore che poi esce in F14.
john



azzz John.........

in colonna B, in una cella da B2 a B10,
inserisci un valore presente tra quelli nelle celle da F2 a F10

e ti trovi il valore di F2:F10 inserito in B2:B10,

nella cella F14

............

ciao
Frank







Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
Excel 2007 forse anche 2013 ... 2021 ... 365 e future...
Post: 1.120
Registrato il: 27/06/2011
Utente Veteran
excel 2007
OFFLINE
10/10/2017 07:32

Re: Re:
tanimon, 10/9/2017 10:42 PM:



azzz John.........

in colonna B, in una cella da B2 a B10,
inserisci un valore presente tra quelli nelle celle da F2 a F10

e ti trovi il valore di F2:F10 inserito in B2:B10,

nella cella F14

............

ciao
Frank




RI EDIT:
mi sono accorto di avere scritto male.........

in cella F14, ti trovi il valore di G2:G10 del valore inserito in B2:B10
la cella risultato F14, riporta l'importo in colonna G del prodotto inserito nell'ultima cella della colonna B.


Scusa,
Frank







Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
Excel 2007 forse anche 2013 ... 2021 ... 365 e future...
Post: 416
Registrato il: 28/05/2011
Città: MILANO
Età: 43
Utente Senior
excel 2000/2007
OFFLINE
10/10/2017 21:28

Tanimon scusami ma la tua macro post #9 non la capisco.
Quando scarico il file e lo apro in F14 c'è 5,5 che non è in nessuna cella.
Non capisco in quale cella bisogna inserire un valore per fare ucire il suo prezzo.
La macro marius post #3 è più capibile.
john



[Modificato da john_cash 10/10/2017 21:29]
---------------
excel 2007
Post: 417
Registrato il: 28/05/2011
Città: MILANO
Età: 43
Utente Senior
excel 2000/2007
OFFLINE
10/10/2017 21:55

Ah trovato [SM=g27819]
Si ricercano solo i valori di G2:G10 nel range B2:B10, e per le altre celle?
john
---------------
excel 2007
Post: 1.121
Registrato il: 27/06/2011
Utente Veteran
excel 2007
OFFLINE
10/10/2017 23:00

Re:
john_cash, 10/10/2017 21.55:

Ah trovato [SM=g27819]
Si ricercano solo i valori di G2:G10 nel range B2:B10, e per le altre celle?
john



scusa,
Non ho capito la tua richiesta
altre celle????
Quali alre celle...


Sventolo bandiera bianca
......
Mi arrendo...








Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
Excel 2007 forse anche 2013 ... 2021 ... 365 e future...
Vota: 15MediaObject5,00118 1
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 03:24. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com