Valutazione 4.87/ 5 (100.00%) 5838 voti

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.
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1421
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).
stato 2014: Office2003/2013 su win7
Avatar utente
wallace&gromit
Utente Senior
 
Post: 1421
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
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
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
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
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
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
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.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
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: alfrimpa e 4 ospiti