Condividi:        

Formula per identificare tipologia

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

Formula per identificare tipologia

Postdi Alea » 05/03/12 16:37

Salve a tutti.
ho creato questa formula per far scrivere in una cella una parola. Purtroppo ora mi trovo a dover "allungare" la formula ma mi viene detto che è troppo lunga e quindi non funzia. La formula iniziale è questa:
Codice: Seleziona tutto
=SE(Ref!B19="E-180";"ECO";SE(Ref!B19="E-225";"ECO";SE(Ref!B19="E-270";"ECO";SE(Ref!B19="E-315";"ECO";SE(Ref!B19="E-360";"ECO";SE(Ref!B19="P-270";"PRO";SE(Ref!B19="P-315";"PRO";SE(Ref!B19="P-360";"PRO";"SLIM")))))

Praticamente i dati da prendere come riferimento sono questi:
S-100/225
S-100/315
S-120/315
S-140/315
S-160/315
S-180/315
S-200/315
S-220/315

E-180
E-225
E-270
E-315
E-360

P-270
P-315
P-360
P-405
P-450

e la formula dovrebbe scrivermi nella cella in cui si trova una di queste tre parole: SLIM - ECO - PRO
SLIM ne caso di S-100/225 ecc.
ECO nel caso di E-180 ecc.
PRO nel caso di P-270 ecc.

Qualcuno può aiutarmi per questa formula?
Grazie mille
Alea
Utente Senior
 
Post: 145
Iscritto il: 24/07/06 14:12

Sponsor
 

Re: Formula per identificare tipologia

Postdi wallace&gromit » 05/03/12 17:10

la formula non funziona più se "annidi" troppe funzioni SE.

Ma nel tuo caso si può ovviare utilizzando la funzione O.
tipo : = SE(O(riferimento = X;riferimento = y;riferimento = z);tipo1;se(O(riferimento = a;riferimento = b;riferimento = c);tipo2;tipo3)).

Se vuoi qualcosa di ancora più evoluto vedi la risposta di Anthony ad un mio post recente: arrotonda progressivo, c'è un'idea che si potrebbe sfruttare.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Formula per identificare tipologia

Postdi Alea » 05/03/12 17:15

Grazie mille intanto.
adesso vado a dare un'occhiata al post.
Ciao
Alea
Utente Senior
 
Post: 145
Iscritto il: 24/07/06 14:12

Re: Formula per identificare tipologia

Postdi wallace&gromit » 05/03/12 17:25

beh ripensandoci non centra tanto!
comunque potresti risolvere anche con un cerca.vert dopo averti creato una tabella di riferimento (è quasta l'unica analogia col post citato).
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Formula per identificare tipologia

Postdi Anthony47 » 05/03/12 23:45

Condivido l' idea della tabella di equivalenza suggerita da w&g: le sighe che hai scritto in 1° colonna, la scritta equivalente che voresti nella seconda colonna; poi userai Cerca.Vert.

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

Re: Formula per identificare tipologia

Postdi Alea » 06/03/12 08:00

Grazie mille per il suggerimento.
Riflettendoci un po' sono arrivato anch'io alla conclusione che con un cerca.vert sia il tutto molto più gestibile.
grazie ancora
Alea
Utente Senior
 
Post: 145
Iscritto il: 24/07/06 14:12

Re: Formula per identificare tipologia

Postdi Karistotele » 06/03/12 08:54

Ciao a tutti.
non so quanto è estesa la lista ma cerca.vert fa sudare la CPU ... e poi ... eventuali doppioni...
Propongo una fra le possibili alternative:

=SE(SINISTRA(C4;TROVA("-";C4)-1)="S";"SLIM";SE(SINISTRA(C4;TROVA("-";C4)-1)="E";"ECO";"PRO"))


Un file di prova: http://www.filedropper.com/sinistra
.K
Avatar utente
Karistotele
Utente Junior
 
Post: 45
Iscritto il: 01/05/10 06:28
Località: PADOVA

Re: Formula per identificare tipologia

Postdi Alea » 06/03/12 09:02

Grazie mille Karistotele
ho provato la tua formula e funziona alla grande.
Alea
Utente Senior
 
Post: 145
Iscritto il: 24/07/06 14:12

Re: Formula per identificare tipologia

Postdi Karistotele » 06/03/12 09:07

Ti ringrazio per il cortese riscontro, però ricordati che quando devi usare troppi SE() una valida alternativa è usare CERCA.VERT().

Un caro saluto a w&g e al grande Anthony.
.K
Avatar utente
Karistotele
Utente Junior
 
Post: 45
Iscritto il: 01/05/10 06:28
Località: PADOVA

Re: Formula per identificare tipologia

Postdi Flash30005 » 06/03/12 10:46

Se vuoi, invece eliminare tutte le formule (che in grandi quantità aumentano il peso del file)
puoi usare una macro tipo questa
Codice: Seleziona tutto
Sub Compila()
Application.ScreenUpdating = False
Application.Calculation = xlManual

UR = Range("B" & Rows.Count).End(xlUp).Row
Col = 3  '<<<< Col "C"
Columns(Col).ClearContents
For RR = 2 To UR
If Range("B" & RR).Value <> "" Then
If Left(Range("B" & RR).Value, 1) = "S" Then Stringa = "SLIM"
If Left(Range("B" & RR).Value, 1) = "E" Then Stringa = "ECO"
If Left(Range("B" & RR).Value, 1) = "P" Then Stringa = "PRO"
Range("C" & RR).Value = Stringa
End If
Next RR
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

I dati originali sono in colonna B e verrà trascritta la stringa in colonna "C"
Cambia la variabile Col = 3 per determinare un output diverso da "C"

Potrai attivare la macro con un pulsante o tasti scelta rapida

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: Formula per identificare tipologia

Postdi Karistotele » 06/03/12 11:50

Ciao Flash,
le macro sono "Rock", le formule sono "lente"
In coda e ad implementazione di questo 3D, conoscendo la tua generosità, vorrei chiederti alcune cose.

* Nel caso specifico come si ovviare al ciclo for .. next che necessita della nidificazione degli if con una struttura select ... case? Si deve necesariamente modificare il foglio excel?

* Usando select ...case (ancora non sapendo) la macro sarebbe più veloce?

* Nell'eventuale caso come fare a misurare la velocità delle due macro per valutarne la convienza (suppongo minima)?

* Generalizzando: come si fà a misurare la velocità di una macro o di una UDF?
* Ancora una cosa, come si fa a misurare con una macro la velocità migliore di due qualsiasi formule (magari se vuoi fare un esempio con due formule qualsiasi).

Spero di non rubarti tempo, visto che siamo nel campo della didattica.
.K
Avatar utente
Karistotele
Utente Junior
 
Post: 45
Iscritto il: 01/05/10 06:28
Località: PADOVA

Re: Formula per identificare tipologia

Postdi Flash30005 » 06/03/12 15:22

Rispondo ai punti 1,2 e 3
Aumentando il numero di righe da prendere in considerazione (30.000 invece di 21)
si può rilevare la differenza tra le If e il select case (a favore di quest'ultimo)
inserendo il codice di trascrizione della funzione Timer
nel nostro caso, all'inizio della macro
Codice: Seleziona tutto
Sub Compila()
Application.ScreenUpdating = False
Application.Calculation = xlManual
UR = Range("B" & Rows.Count).End(xlUp).Row
Col = 3  '<<<< Col "C"
Columns(Col).ClearContents
Range("E1").Value = Timer  '<<<< inserire qui

e alla fine
Codice: Seleziona tutto
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True 
Range("F1").Value = Timer  '<<<<<<<< inserire qui
Range("G1").Value = Range("F1").Value - Range("E1").Value  '<<<< inserire qui
End Sub


Per quanto riguarda il punto 4 (UDF) non saprei come sia possibile valutarne la velocità visto che è una funzione personalizzata e che è sempre attiva (dopo averla impostata), come anche per le formule.
Forse mettendo il calcolo in manuale inserire il timer
variare un dato origine (magari con macro)
ripristinare il calcolo automatico e
inserire il timer
Infine calcolare la differenza tra i due valori-timer
ma questo lo lascio fare a te :D

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: Formula per identificare tipologia

Postdi Karistotele » 06/03/12 18:53

Grazie Flash , molto utile il calcolo della velocità della macro. Cercherò di integrare con msgbox.
Per quanto da te detto nel finale, naturalmente non so proprio da dove cominciare per cui lo rimando.

Ciao e buona serata.
.K
Avatar utente
Karistotele
Utente Junior
 
Post: 45
Iscritto il: 01/05/10 06:28
Località: PADOVA

Re: Formula per identificare tipologia

Postdi Anthony47 » 07/03/12 00:26

Le formule sono "Questa l'ho fatta io e me la adatto come serve e quando serve", le macro sono "Mi aiutate per favore?"
Le formule sono "Cambio qui e questo e' il risultato", le macro sono "Aspetta che aggiorno; ho aggiornato tutto?"

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


Torna a Applicazioni Office Windows


Topic correlati a "Formula per identificare tipologia":


Chi c’è in linea

Visitano il forum: raimea e 61 ospiti