Precedente :: Successivo |
Autore |
Messaggio |
FreeSpirit Dio maturo


Registrato: 31/08/05 15:35 Messaggi: 1570 Residenza: Olimpo Informatico
|
Inviato: 17 Nov 2006 13:58 Oggetto: Excel, aiuto per scrivere una formula |
|
|
Vorrei sapere che formula scrivere in "B8" per far sì che scrivendo "pero" in "A8", in "B8" mi compaia la quantità associata a "pero" che è stata scritta l'ultima volta, e cioè 11. Ovviamente se scrivessi "melo", la formula deve restituirmi 6 e così via.
So di non essere stato troppo chiaro con la spiegazione, se aveste dubbi, chiedetemi pure delucidazioni.
Grazie a tutti |
|
Top |
|
 |
GrayWolf Dio maturo


Registrato: 03/07/05 17:24 Messaggi: 2325 Residenza: ... come frontiera i confini del mondo...
|
Inviato: 17 Nov 2006 16:01 Oggetto: |
|
|
una formula non l'ho trovata...
excel fa sempre una ricerca dall'alto verso il basso
ho scritto questa macro:
Codice: |
Sub findReverse()
saddr = ActiveCell.Address
sArg = ActiveCell.Text
ifrom = Right(saddr, Len(saddr) - InStrRev(saddr, "$"))
For i = ifrom - 1 To 1 Step -1
If sArg = Cells(i, 1) Then
Cells(ifrom, 2).Value = Cells(i, 2).Text
Exit For
End If
Next
End Sub
|
La devi registrare poi gli assegni una combinazione di tasti
digiti nella colonna il nome dell'albero, premi la combinazione di tasti che hai scelto,
nella casella adiacente appare l'ultimo valore inserito per lo stesso albero
se ci fossero problemi.... parliamone
PS la macro funziona per l'esempio postato, cioè:
che il nome dell'albero sia nella prima colonna e che il valore corrispondente sia in quella adiacente; altrimenti occorre modificare il valore degli indici
Dopo l'applicazione della macro i valori possono essere modificati
quindi se scrivi:
melo 25
cambi riga
scrivi melo, applichi la macro, ti appare 25
se modifichi in 35
poi ti posizioni sulla riga successiva
scrivi melo, applichi la macro, ti appare 35
edit:
purtroppo la macro funziona solo quando sei uscito dalla cella quindi: se modifichi la seconda e la terza riga della macro con
Codice: |
ifrom = Right(saddr, Len(saddr) - InStrRev(saddr, "$"))
sArg = Cells(ifrom, 1).Value
|
puoi:
digitare il nome dell'albero,
posizionarti sulla colonna adiacente [con il tasto tab]
applicare la macro
tanto per allungare un po' il post, la seconda versione è:
Codice: |
Sub findReverse()
saddr = ActiveCell.Address
ifrom = Right(saddr, Len(saddr) - InStrRev(saddr, "$"))
sArg = Cells(ifrom, 1).Value
For i = ifrom - 1 To 1 Step -1
If sArg = Cells(i, 1) Then
Cells(ifrom, 2).Value = Cells(i, 2).Text
Exit For
End If
Next
End Sub
|
|
|
Top |
|
 |
FreeSpirit Dio maturo


Registrato: 31/08/05 15:35 Messaggi: 1570 Residenza: Olimpo Informatico
|
Inviato: 17 Nov 2006 18:41 Oggetto: |
|
|
Sei stato chiarissimo e la macro funziona perfettamente, grazie 1000!
GrayWolf ha scritto: | una formula non l'ho trovata...
excel fa sempre una ricerca dall'alto verso il basso |
Infatti, ho chiesto aiuto sperando che ci fosse qualche funzione a me sconosciuta che partisse dal basso...
Cercavo una funzione per evitare di appesantire troppo il foglio con una macro ma visto che non è possibile va benissimo anche questa soluzione |
|
Top |
|
 |
gqn77 Eroe in grazia degli dei

Registrato: 06/07/05 00:35 Messaggi: 178
|
Inviato: 13 Gen 2007 18:21 Oggetto: |
|
|
FreeSpirit ha scritto: |
Sei stato chiarissimo e la macro funziona perfettamente, grazie 1000!
GrayWolf ha scritto: | una formula non l'ho trovata...
excel fa sempre una ricerca dall'alto verso il basso |
Infatti, ho chiesto aiuto sperando che ci fosse qualche funzione a me sconosciuta che partisse dal basso...
Cercavo una funzione per evitare di appesantire troppo il foglio con una macro ma visto che non è possibile va benissimo anche questa soluzione |
Ho visto che il post è di novembre ... se ti serve la formula excel c'è.
Cerca.vert=(cella in cui inserirai la parola "es pero";Intervallo che racchiude tutta la tabella con a sinistra le piante e a destra i numeri;2 che vuol dire che ti interessa la seconda colonna. Nel tuo caso
cerca.vert=(C1;A2:B7;2)
Con questa se metti in c1 la parola pero il sistema ritorna nella cella con questa formula 12. |
|
Top |
|
 |
GrayWolf Dio maturo


Registrato: 03/07/05 17:24 Messaggi: 2325 Residenza: ... come frontiera i confini del mondo...
|
Inviato: 14 Gen 2007 02:21 Oggetto: |
|
|
forse il mio excel [uso Office 2000] funziona male...
ho provato la formula con i valori indicati
se digito pero la risposta è 11 [coerente al problema: deve essere restituito il valore dell'ultima ricorrenza]
se digito melo la risposta è 45  |
|
Top |
|
 |
gqn77 Eroe in grazia degli dei

Registrato: 06/07/05 00:35 Messaggi: 178
|
Inviato: 14 Gen 2007 03:18 Oggetto: |
|
|
GrayWolf ha scritto: | forse il mio excel [uso Office 2000] funziona male...
ho provato la formula con i valori indicati
se digito pero la risposta è 11 [coerente al problema: deve essere restituito il valore dell'ultima ricorrenza]
se digito melo la risposta è 45  |
Errore mio... ho interpretato male il quesito. La mia formula serve per restituire il valore della colonna di destra se si digita il valore della colonna di sinistra. Ma prevede che ci sia unicità di accoppiamenti. Si può anche fare la somma di tutto ciò che a destra corrisponde a un valore presente più volte a sinista. Ma non quello che chiedeva il quesito poichè non ritorna necessariamente l'ultimo valore inserito. |
|
Top |
|
 |
|