Condividi:        

variazione a CERCO FUNZIONE EXCEL A DUE VARIABILI

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

variazione a CERCO FUNZIONE EXCEL A DUE VARIABILI

Postdi skynet1 » 13/10/10 23:56

Scusate ma nel salvare il topic la tabella si è sconfigurata, per cui riporpongo la domanda:
data la seguente tabella:
A B C D E F G H
1 . . . . 1 2 3 4
2 . . . 1 5 9 8 8
3 . . . 2 6 7 9 7
4 . . . 3 9 8 8 9
5 . . . 4 9 8 6 8
6 . . . 5 5 9 6 9
7 . . . 6 5 4 9 8
8 . . . 7 5 3 6 9
Premesso che la riga 1 riporta i dati della 1° variabile ( I NUMERI 1,2,3,4) e che la colonna D riporta i dati della 2° variabile ( i numeri da 1 a 7 ), imputando i nelle celle A1 e B1 dati delle due variabili, ho necessità di ottenere nella cella C1 il valore di intersezione rigo -colonna scritto nella tabella.
ESEMPIO: Scrivendo in cella A1 il valore 3 ( VARIABILE che troviamo in riga 1 cella G1 ) e scrivendo in cella B1 il valore 5 ( VARIABILE riportato nella cella D6 ) ho necessità di ottenere nella cella C1 il numero che si interseca rigo6 con la colonna G , cioè 6
Quindi la cella C1 mi deve sempre restituire il valore di intersezione (rigo colonna) delle due variabili che scrivo, di volta in volta, nelle celle A1 e B1.
Grazie dell'aiuto.
skynet1
Utente Junior
 
Post: 11
Iscritto il: 13/10/10 22:03

Sponsor
 

Re: variazione a CERCO FUNZIONE EXCEL A DUE VARIABILI

Postdi Flash30005 » 14/10/10 06:14

Ciao Skynet1 e benvenuto nel Forum

Se non sono cambiate le specifiche rispetto al tuo precedente post
questa macro dovrebbe risolvere il quesito
Codice: Seleziona tutto
Sub RicercaV()
UR = Range("E" & Rows.Count).End(xlUp).Row
UC = Range("IV1").End(xlToLeft).Column
NVR = Range("A1").Value
NVC = Range("B1").Value
For RR = 1 To UR
If NVR = Range("D" & RR).Value Then Riga = RR
Next RR
For CC = 5 To UC
If NVC = Cells(1, CC).Value Then Col = CC
Next CC
Range("C1").Value = Cells(Riga, Col).Value
End Sub


Fai sapere
Ciao


P.s. Non avresti dovuto aprire un secondo topic per lo stesso argomento ma continuare a postare nel topic precedente
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: variazione a CERCO FUNZIONE EXCEL A DUE VARIABILI

Postdi maxmula » 14/10/10 10:06

Credo si possa fare senza l'uso di macro ;) : basta che in C1 scrivi questa formula:

Codice: Seleziona tutto
=CERCA.VERT(B1;$D$1:$H$8;A1+1;FALSO)


Può funzionare?


Ciao,
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: variazione a CERCO FUNZIONE EXCEL A DUE VARIABILI

Postdi Anthony47 » 14/10/10 13:56

Hummm...
Prova in c1:
Codice: Seleziona tutto
=INDICE(E:I;CONFRONTA(B1;E:E;0);CONFRONTA(A1;E1:I1;0))


Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: variazione a CERCO FUNZIONE EXCEL A DUE VARIABILI

Postdi ricky53 » 14/10/10 14:35

Ciao,
mi sono sfiziato a provare le soluzioni senza macro (se posso vorrei esprimere un mio pensiero: interessante quella di Anthony; Maxmula ha ottimizzato al massimo):

1. MAxmula --->>> funziona
2. Anthony --->>> funziona ma va sostituito "E:E" con "D:D" (refuso) ossia

Codice: Seleziona tutto
=INDICE(E:I;CONFRONTA(B1;D:D;0);CONFRONTA(A1;E1:I1;0))


Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: variazione a CERCO FUNZIONE EXCEL A DUE VARIABILI

Postdi Anthony47 » 14/10/10 21:16

La formula che ho dato era basata sull' ipotesi che la tabella cominciasse in col E, come sembra nella prima riga di skynet1; non ho fatto caso che le righe successive cominciavano una colonna prima altrimenti avrei quanto meno precisato la mia ipotesi; me ne scuso. Grazie a Ricky per aver puntualizzato la cosa.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: variazione a CERCO FUNZIONE EXCEL A DUE VARIABILI

Postdi skynet1 » 14/10/10 22:26

Grazie per le risposte, e scusate se ho inserito un altro topic.
Il problema è che non sono un utente inesperto di excel e quindi sono un attimo in difficoltà ad applicare le macro.
A complicare le cose è capitato che la tabella contiene un errore, ovvero sotto la colonna A sono riportati i numeri da 1 a 8 che nella mia intenzione dovevano rappresentare le righe.
Quindi:
- sotto la colonna A le celle sono vuote,
- in A1 devo immettere la prima variabile ( cioè uno dei dati riportati da E1 a H1),
- in B1 la seconda variabile (cioè uno dei dati riportati da D1 a d8)
- in C1 dovrei ottenere il risultato dell'intersezione riga colonne delle due variabili.

Alla luce di questa correzione,pensate che le formule suggeritemi siano applicabili o devo cambiare qualcosa?
Grazie per il vostro aiuto.
Io sono un assicuratore professionista, quindi sarà un piacere ricambiare ed essere d'aiuto con qualche suggerimento utile ad eventuali problemi.
skynet1
Utente Junior
 
Post: 11
Iscritto il: 13/10/10 22:03

Re: variazione a CERCO FUNZIONE EXCEL A DUE VARIABILI

Postdi ricky53 » 14/10/10 22:38

Ciao,
probabilmente non dovrai cambiare nulla.
La certezza l'avrai provando.

Ciao da Ricky53
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: variazione a CERCO FUNZIONE EXCEL A DUE VARIABILI

Postdi Anthony47 » 14/10/10 22:42

Anche se "non sei un utente inesperto" suggerisco di lasciare stare la macro.
Per le formule non servono altre istruzioni, salvo la constatazione che se i dati cominciano in col E allora la formula da me suggerita torna a essere
Codice: Seleziona tutto
=INDICE(E:I;CONFRONTA(B1;E:E;0);CONFRONTA(A1;E1:I1;0))
(e non come era stata GIUSTAMENTE corretta da Ricky)

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: variazione a CERCO FUNZIONE EXCEL A DUE VARIABILI

Postdi skynet1 » 14/10/10 23:06

Acciderba, proprio non ci prendo. Correggo: io sono un utente INESPERTO.
skynet1
Utente Junior
 
Post: 11
Iscritto il: 13/10/10 22:03

Re: variazione a CERCO FUNZIONE EXCEL A DUE VARIABILI

Postdi maxmula » 14/10/10 23:20

Non dovrai cambiare nulla, però, se hai voglia di smanettare un po'...

- Seleziona la cella C1;
- Apri il menu Inserisci e scegli "Funzione";
- Vai sull'opzione "Selezionare una categoria"; clicca e seleziona "Ricerca e riferimento";
- Seleziona Cerca.Vert, oppure Indice (a seconda di quella che decidi di usare nel tuo foglio)... ed inizia col leggere quelle 3 righe di descrizione che compaiono sotto;
- Per inserire la funzione nel foglio, clicca su OK, e compila la maschera con i dati della mia formula;
- Per maggiori informazioni, clicca su "Guida relativa a questa funzione" e... buona lettura!

Se non sei molto esperto, per il momento, direi lasciar stare le macro.
Se però avessi voglia di toglierti qualche piccola curiosità su come funzionano... prova a vedere qui:

E' solo uno dei tanti esempi di cui è costellato questo forum.
Però ti avviso: se ti addentri nei misteri del VBA dovrai fare AMPIO uso della Guida di Excel ! :)

Ciao!
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: variazione a CERCO FUNZIONE EXCEL A DUE VARIABILI

Postdi skynet1 » 14/10/10 23:55

Scusa, SUPPONIAMO CHE SCELGO LE VARIABILI 700 in A1 e 60 in B1.
La formula che mi hai suggerito da inserire nella cella C1 non mi restituisce il risultato della cella F7
Cosa sto' sbagliando?

... A... B...C... D ...E ...F ..G ..H
1 700 60 ...... 500 600 700 800 900
2 .... .... .... . 120 .59.. 81. 86. 98.
3 .... .... .... . 99.. .59.. 81. 86. 98.
4 .... ..... .... 90.. 59.. 81. 86. 98.
5 ..... ..... .... 80.. 59.. 81. 86. 98.
6 ..... ..... .... 70.. 59.. 81. 86. 98.
7 ..... ..... .... 60.. 59.. 81. 86. 98.
8 ..... ..... .... 55.. 59.. 81. 86. 98.
9 ..... ..... .... 50.. 59.. 81. 86- 98.
10 ..... ..... .... 45.. 59.. 81. 86. 98.
skynet1
Utente Junior
 
Post: 11
Iscritto il: 13/10/10 22:03

Re: variazione a CERCO FUNZIONE EXCEL A DUE VARIABILI

Postdi ricky53 » 15/10/10 06:52

Ciao,
hai tutti i dati uguali in ogni colonna!!!
Sicuro che sia così ???
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: variazione a CERCO FUNZIONE EXCEL A DUE VARIABILI

Postdi maxmula » 15/10/10 08:43

Non è ben chiaro a chi ti stai rivolgendo...
se ti riferisci alla formula cerca.vert. il motivo è questo:

    Sintassi
    CERCA.VERT(valore;tabella_matrice;indice;intervallo)

    Valore è il valore da ricercare nella prima colonna della matrice. Valore può essere un valore, un riferimento o una stringa di testo.

    Tabella_matrice è la tabella di informazioni nella quale vengono cercati i dati. Utilizzare un riferimento a un intervallo oppure un nome di intervallo, quale Database o Elenco.

    Se intervallo è VERO, i valori nella prima colonna di tabella_matrice dovranno essere disposti in ordine crescente: ...; -2; -1; 0; 1; 2; ...; A-Z; FALSO; VERO. In caso contrario, CERCA.VERT potrebbe non restituire il valore corretto. Se intervallo è FALSO, non sarà necessario ordinare tabella_matrice.

    È possibile disporre i valori in ordine crescente scegliendo Ordina dal menu Dati e selezionando l'opzione Crescente.

    I valori nella prima colonna di tabella_matrice possono essere testo, numeri o valori logici.

    La funzione non rileva le maiuscole.

    Indice è il numero di colonna in tabella_matrice dal quale deve essere restituito il valore corrispondente.
    Indice uguale a 1 restituisce il valore nella prima colonna di tabella_matrice, indice uguale a 2 restituisce il valore nella seconda colonna di tabella_matrice e così via.

Quindi nel tuo caso la mia formula chiede ad excel di trovare il valore 60 e restituirti il valore che si trova 700 colonne a destra (in excel 2003 questa colonna non esiste).
Ti esce #RIF perchè è fuori dell'intervallo di ricerca (limitato alla tabella che va da B1 a H8.

La formula che ho suggerito si basa sul fatto che gli indici di colonna sono ordinati in progressione a partire da 1.
Se invece gli indici di colonna sono variabili (non si capiva dal tuo esempio), la formula da mettere in C1 diventa:

Codice: Seleziona tutto
=CERCA.VERT(B1;$D$1:$H$8;CONFRONTA(A1;$E$1:$I$1;0)+1;FALSO)


(si consiglia la lettura della guida per la funzione CONFRONTA... ed occhio al flag Intervallo ;) )
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: variazione a CERCO FUNZIONE EXCEL A DUE VARIABILI

Postdi Flash30005 » 16/10/10 16:26

Per Skynet1

scarica questo file
e modifica uno dei valori in A1 o B1
avrai in C1 il risultato che ti aspettavi nel tuo primo post (dove A è riga e B colonna)
Considerata la tabella sotto compilata, avrei necessità di una formula che se, in A1 scrivo uno dei numeri contenuti nella colonna D ( esempio 90 ) e se in B1 scrivo uno dei numeri contenuti nel rigo 1 ( esempio 700) che rappresentano le mie variabili, mi restituisca in C1 il valore ottenuto incrociando il rigo con la colonna, cioè il contenuto della cella 4F (81).


    e un po' più confusamente qui (dove l'esempio non concorda con quanto descritto).
    skynet1 ha scritto:imputando i nelle celle A1 e B1 dati delle due variabili, ho necessità di ottenere nella cella C1 il valore di intersezione rigo -colonna scritto nella tabella.



    ABC D E F G H
    1 500 700 800 1000
    2 150 59 81 86 98
    3 100 59 81 86 98
    4 90 59 81 86 98

Poi inserirai la tua matrice
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: variazione a CERCO FUNZIONE EXCEL A DUE VARIABILI

Postdi Flash30005 » 16/10/10 18:48

Aggiungo questo secondo file
nel quale potrai sceglierai di utilizzare o il foglio "Versione1" o il foglio "Versione2"

Con questa macro in caso di digitazione di un valore errato sarai avvisato


Per il futuro è opportuno essere più chiari e non postare quesiti discordanti tra loro che disorientano gli utenti


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: variazione a CERCO FUNZIONE EXCEL A DUE VARIABILI

Postdi skynet1 » 16/10/10 22:04

Salve, scusate se rispondo in modo anomalo ma non ho ancora acquisito molta pratica con il forum.
Applicando questa formula che mi avete suggerito nei giorni scorsi
INDICE(E:I;CONFRONTA(B1;D:D;0);CONFRONTA(A1;E1:J1;0))
la stessa, in effetti, riesce a restituirmi il dato che cercavo.( ESEMPIO: imputo in A1 90 e in B1 774, C1 mi restituisce G4 cioè 86 ( vedi tabella sottostante che ho copiato dal foglio di lavoro )
Pensavo di avere risolto il problema ... invece il problema si complica
Mi spiego:
Da E1 a J1 il valore indicato rappresenta la "varibile" cilindrata.
Da D2 a D13 il valore indicato rappresenta la "variabile" Kilowatt
i valori incolonnati nella tabella rappresentano i relativi punteggi che mi deve restituire la cella C1
Ma se io devo calcolare il punteggio per una cilindrata e per kilowatt che non sono indicati, per esempio scrivo
A1= 500 e B1=110 in C1 si presenta un errore.
In altre parole pensavo che i valori cilindrata indicati in rigo E1:J1 e kilowatt in colonna D2:D13, potessero esser considerati dalla formula come valori limite e non come valori assoluti.
E1 dovrebbe indicare tutte le cilindrate da 1 sino a 568; F1 dovrebbe indicare le cilindrata da 569 a 773; G1 le cilindrate da 774 a 997 e così via.
Allo stesso modo D2 indica i kilowatt => a 150; D3 indica le cilindrate => a 100 ; D4 indica le cilindrate => a 90 e così via.
Pertanto se A1= 500 e B1=90 mi attendo che C1 restituisca il punteggio di E3 cioè 59.
Esiste una formula che riesce a soddisfare la mia esigenza?
Grazie
A B C D E F G H I j
1 774. 90 86 …….. 1 569 774 998 1243 1505
2 ……………. …….. ……….. 150 54 81 96 98 105 105
3 ……………. …….. ……….. 100 59 81 86 98 115 115
4 ……………. …….. ……….. 90 59 81 86 98 114 115
5 ……………. …….. ……….. 80 59 81 86 98 114 115
6 ……………. …….. ……….. 70 59 81 86 98 114 115
7 ……………. …….. ……….. 60 59 81 86 98 98 115
8 ……………. …….. ……….. 55 59 81 86 98 98 115
9 ……………. …….. ……….. 50 59 81 86 98 98 115
10 ……………. …….. ……….. 45 59 81 86 98 98 115
11 ……………. …….. ……….. 40 59 81 86 98 98 115
12 ……………. …….. ……….. 35 59 81 86 87 98 115
13 ……………. …….. ……….. 30 59 81 86 86 96 115
skynet1
Utente Junior
 
Post: 11
Iscritto il: 13/10/10 22:03

Re: variazione a CERCO FUNZIONE EXCEL A DUE VARIABILI

Postdi skynet1 » 16/10/10 22:33

.Mi si è di nuovo sconfigurata la tabella, pertanto ripeto l'intero messaggio con la tabella sistemata:

Salve, scusate se rispondo in modo anomalo ma non ho ancora acquisito molta pratica con il forum.
Applicando questa formula che mi avete suggerito nei giorni scorsi
INDICE(E:I;CONFRONTA(B1;D:D;0);CONFRONTA(A1;E1:J1;0))
la stessa, in effetti, riesce a restituirmi il dato che cercavo.( ESEMPIO: imputo in A1 90 e in B1 774, C1 mi restituisce G4 cioè 86 ( vedi tabella sottostante che ho copiato dal foglio di lavoro )
.. A.. B. C.. D.. E.. F.. G...H.. ..I..... J.....
1 774 90 86 ... . 1 569 774 998 1243 1505
2 ... ... ... 150 54 81 .96 .. 98 . 105 .. 105
3 ... ... ... 100 59 81 .86 .. 98 . 115 .. 115
4 ... ... ... 90 .59 81 . 86 .. 98 . 114.. 115
5 ... ... ... 80 .59 81 . 86 ... 98 . 114.. 115
6 ... ... ... 70 .59 81 .86 ....98 .114.. 115

Pensavo di avere risolto il problema ... invece il problema si complica
Mi spiego:
Da E1 a J1 il valore indicato rappresenta la "varibile" cilindrata.
Da D2 a D13 il valore indicato rappresenta la "variabile" Kilowatt
i valori incolonnati nella tabella rappresentano i relativi punteggi che mi deve restituire la cella C1
Ma se io devo calcolare il punteggio per una cilindrata e per kilowatt che non sono indicati, per esempio scrivo
A1= 500 e B1=94 in C1 si presenta un errore.
In altre parole pensavo che i valori cilindrata indicati in rigo E1:J1 e kilowatt in colonna D2:D13, potessero esser considerati dalla formula come valori limite e non come valori assoluti.
E1 dovrebbe indicare tutte le cilindrate da 1 sino a 568; F1 dovrebbe indicare le cilindrata da 569 a 773; G1 le cilindrate da 774 a 997 e così via.
Allo stesso modo D2 indica i kilowatt => a 150; D3 indica le cilindrate => a 100 ; D4 indica le cilindrate => a 90 e così via.
Pertanto se A1= 500 e B1=94 mi attendo che C1 restituisca il punteggio di E3 cioè 59.
Esiste una formula che riesce a soddisfare la mia esigenza?
Grazie

.. A.. B. C.. D.. E.. F.. G...H.. ..I..... J.....
1 500 94 59 ... . 1 569 774 998 1243 1505
2 ... ... ... 150 54 81 .96 .. 98 . 105 .. 105
3 ... ... ... 100 59 81 .86 .. 98 . 115 .. 115
4 ... ... ... 90 .59 81 . 86 .. 98 . 114.. 115
5 ... ... ... 80 .59 81 . 86 ... 98 . 114.. 115
6 ... ... ... 70 .59 81 .86 ....98 .114.. 115
skynet1
Utente Junior
 
Post: 11
Iscritto il: 13/10/10 22:03

Re: variazione a CERCO FUNZIONE EXCEL A DUE VARIABILI

Postdi Anthony47 » 17/10/10 01:21

Intanto mi fa piacere che, pur avendoti dato PER DUE VOLTE la formula sbagliata (cioe' riferendo erroneamente il primo Confronta all' intervallo E:E) l' hai saputa applicare nel modo corretto (anche seguendo l' osservazione di Ricky).
Con le nuove precisazioni allora la formula andra' modificata in
Codice: Seleziona tutto
=INDICE(E:I;CONFRONTA(B1+1;D:D;-1)+1;CONFRONTA(A1;E1:J1;1))

Richiede pero' la presenza in D1 di un valore superiore al piu' elevato che pensi di dover inputare in B1, ad esempio 999.

Per allegare una tabella forse la cosa migliore e' allegare uno screenshot, come indicato qui: viewtopic.php?f=26&t=80395#p466013

Prova la formula e fai sapere; ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: variazione a CERCO FUNZIONE EXCEL A DUE VARIABILI

Postdi Flash30005 » 17/10/10 03:36

skynet1 ha scritto:.Mi si è di nuovo sconfigurata la tabella, pertanto ripeto l'intero messaggio con la tabella sistemata:
Salve, scusate se rispondo in modo anomalo ma non ho ancora acquisito molta pratica con il forum.


Hai provato a scaricare il file che ho allegato nel link del link post del 16/10/10 ore 19:48?
http://rapidshare.com/files/425455140/CercaValCoordinate.xls

Fai sapere
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "variazione a CERCO FUNZIONE EXCEL A DUE VARIABILI":


Chi c’è in linea

Visitano il forum: Nessuno e 35 ospiti

cron