Condividi:        

[Excel] Scoprire il genere di dato contenuto in una cella

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

[Excel] Scoprire il genere di dato contenuto in una cella

Postdi -Io- » 03/10/06 12:35

Ciao a tutti,
volevo sapere se in Excel esiste una funzione (ed, eventualmente, qual'è) che permetta di conoscere il genere del contenuto di una cella, cioè il tipo di dato presente in essa (se è numerico, se è di tipo testo, ecc...).
Grazie anticipatamente.
-Io-
Utente Senior
 
Post: 137
Iscritto il: 20/02/06 14:44
Località: Gargnano

Sponsor
 

Re: [Excel] Scoprire il genere di dato contenuto in una cell

Postdi cassioli » 03/10/06 12:54

-Io- ha scritto:Ciao a tutti,
volevo sapere se in Excel esiste una funzione (ed, eventualmente, qual'è) che permetta di conoscere il genere del contenuto di una cella, cioè il tipo di dato presente in essa (se è numerico, se è di tipo testo, ecc...).
Grazie anticipatamente.

nell'help ho trovato questo.
chissa' se serve... non me lo sono ancora studiato.

Utilizzo dell'oggetto CellFormat
Utilizzare le proprietà FindFormat o ReplaceFormat dell'oggetto Application per restituire un oggetto CellFormat.

È possibile utilizzare le proprietà Borders,Font o Interior di un oggetto CellFormat per definire i criteri di ricerca del formato della cella. L'esempio seguente imposta i criteri di ricerca della parte interna del formato della cella. In questo scenario, la parte interna della cella A1 impostata sul colore giallo verrà trovata e sostituita con una parte interna di colore verde.

Codice: Seleziona tutto
Sub ChangeCellFormat()

    ' Set the interior of cell A1 to yellow.
    Range("A1").Select
    Selection.Interior.ColorIndex = 36
    MsgBox "The cell format for cell A1 is a yellow interior."

    ' Set the CellFormat object to replace yellow with green.
    With Application
        .FindFormat.Interior.ColorIndex = 36
        .ReplaceFormat.Interior.ColorIndex = 35
    End With

    ' Find and replace cell A1's yellow interior with green.
    ActiveCell.Replace What:="", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=True, _
        ReplaceFormat:=True
    MsgBox "The cell format for cell A1 is replaced with a green interior."

End Sub
cassioli
Utente Senior
 
Post: 1014
Iscritto il: 05/03/04 11:02

Postdi archimede » 03/10/06 13:02

Vedi help funzione Tipo.

HTH.

Alessandro
archimede
Moderatore
 
Post: 2851
Iscritto il: 07/11/02 12:41
Località: Genova

Postdi cassioli » 03/10/06 13:11

Trovato:

Codice: Seleziona tutto
Range("A1").Select
Debug.Print Application.ActiveCell.NumberFormat
cassioli
Utente Senior
 
Post: 1014
Iscritto il: 05/03/04 11:02

Postdi cassioli » 03/10/06 13:16

Ed ecco la lista dei formati. ;)
http://www.ozgrid.com/Excel/CustomFormats.htm
cassioli
Utente Senior
 
Post: 1014
Iscritto il: 05/03/04 11:02

Postdi -Io- » 03/10/06 13:45

Non ho capito :neutral: ... Se io ho un numero in A1, cosa devo scrivere in B1 per avere come risultato "A1 è numerico" o "A1 è di tipo testo" o qualcosa di simile?
-Io-
Utente Senior
 
Post: 137
Iscritto il: 20/02/06 14:44
Località: Gargnano

Postdi -Io- » 03/10/06 16:12

Niente ragazzi, ho risolto da me: bastava usare la funzione VAL.NUMERO, che restituisce "VERO" se il contenuto della cella è un valore numerico oppure "FALSO" in caso contrario.

Codice: Seleziona tutto
=VAL.NUMERO(cella)


Adesso xò, mi sorge un altro problema: utilizzo la funzione cerca.vert per popolare una tabella partendo da un'altra; vorrei sapere se non c'è modo di far sì che le celle della mia nuova tabella abbiano lo stesso tipo di dati di quelle della tabella di partenza (es: in tabella1 ho Marco, Claudio, Filippo nella colonna "Nome"; 10, 20, 12 nella colonna "Euro1" e 1, 0, 3 nella colonna "Euro2". Nella tabella 2 faccio un cerca verticale per trovare Luca, Marco, Claudio e i dati relativi -come in tabella 1. Mettiamo che la cella che contiene il dato "20" sia di tipo testo; come faccio a fare in modo che anche in tabella2, la cella che mi contiene il dato "20" -ottenuta sempre mediante un cerca.vert- sia di tipo testo?).
-Io-
Utente Senior
 
Post: 137
Iscritto il: 20/02/06 14:44
Località: Gargnano

Postdi Anthony47 » 03/10/06 16:53

Vedo che hai risolto, ma dico lo stesso la mia.
Le funzioni excel che ti possono dare una mano sono quelle "informative": vedi l' help on line alla voce "Funzioni relative alle informazioni".
Ad esempio:
VALORE.NON.TESTO Restituisce VERO se il valore non è in forma di testo
VAL.NUMERO Restituisce VERO se il valore è un numero
VAL.TESTO Restituisce VERO se il valore è in forma di testo
e tante altre.
Utile anche CELLA, che restituisce info su nome file, nome foglio, formato cella, e tante altre opzioni.

Fuori dalle informative, dai un' occhiata anche a SUBTOTALE, che consente di contare quanti numeri ci sono in un range, o quanti dati complessivi, e altro ancora.

Quindi, nel caso che hai citato, se in B1 scrivi =VAL.NUMERO(A1) otterrai "VERO"; oppure =--VAL.NUMERO(A1) ti restituisce 1; oppure =SE(VAL.NUMERO(A1);1;SE(VAL.TESTO(A1);2;0)) ti restituisce 1 se numero, 2 se Testo, 0 se altro.

Per la domanda nel messaggio di poco fa, se le celle dove metti il risultato di CERCA.VERT sono formattate "Generale", otterrai lo stesso tipo di dati che c' e' nella tabella di origine. Hai avuto una esperienza diversa?

Ciao,



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

Postdi -Io- » 03/10/06 18:39

Anthony47 ha scritto:Per la domanda nel messaggio di poco fa, se le celle dove metti il risultato di CERCA.VERT sono formattate "Generale", otterrai lo stesso tipo di dati che c' e' nella tabella di origine. Hai avuto una esperienza diversa?

Ciao,



Ciao,


Probabilmente ho sbagliato qualcosa, ma sì: nella tabella1 ho alcuni valori in formato numerico ed altri di tipo testo, ma nella tabella2 vengono tutti riportati come numeri :-? ...
-Io-
Utente Senior
 
Post: 137
Iscritto il: 20/02/06 14:44
Località: Gargnano

Postdi Anthony47 » 03/10/06 23:58

nella tabella1 ho alcuni valori in formato numerico ed altri di tipo testo, ma nella tabella2 vengono tutti riportati come numeri

Domanda: come fai a dire che sono numeri? perche' applicando VAL.NUMERO ti restituisce VERO o perche' si comportano da numeri?

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

Postdi -Io- » 05/10/06 09:46

No: x' gli ho dato io quel formato.
-Io-
Utente Senior
 
Post: 137
Iscritto il: 20/02/06 14:44
Località: Gargnano

Postdi -Io- » 05/10/06 09:47

Ah, no, scusa: ho capito male :D ... Dico che sono numeri x' VAL.NUMERO restituisce VERO.
-Io-
Utente Senior
 
Post: 137
Iscritto il: 20/02/06 14:44
Località: Gargnano

Postdi Anthony47 » 05/10/06 11:12

Mah, sono a corto di idee...
Per quello che so e che vedo, CERCA.VERT restituisce lo stesso genere di dato che c' e' nella tabella di partenza.
La tua formula e' un puro Cerca.vert o contiene altri operatori, che potrebbero funzionare da coercitori impliciti?

E, ma questo mi sembra scontato, hai verificato con VAL.TESTO che il dato di partenza e' un testo?

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

Postdi -Io- » 06/10/06 19:01

Non ho verificato con VAL.TESTO x' ho usato VAL.NUMERO. Inoltre ho controllato e CERCA.VERT non mantiene lo stesso tipo di dato della tabella di partenza, ma li converte tutti in dai generali.
-Io-
Utente Senior
 
Post: 137
Iscritto il: 20/02/06 14:44
Località: Gargnano

Postdi Anthony47 » 08/10/06 18:11

Il formato "Generale" e' pronto a contenere sia numeri, che stringhe, che date/ore etc, a seconda di come "appare" il dato che gli si carica.

Io continuo a vedere, come output di un cerca.vert, un numero o un testo cosi' come sono i dati trovati nella tabella di origine.
Ma la tua formula e' una "pura" cerca.vert o include altri operatori, che potrebbero funzionare da coercitori impliciti?

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

Postdi -Io- » 13/10/06 10:07

No no, c'è solo CERCA.VERT. Cmq ho risolto il problema: siccome ci sono anche altre colonne (irrilevanti per le informazioni che contengono), imposto un controllo su di esse: faccio un SOMMA.SE, la cui condizione è che la cella X non sia vuota ;) .
-Io-
Utente Senior
 
Post: 137
Iscritto il: 20/02/06 14:44
Località: Gargnano


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Scoprire il genere di dato contenuto in una cella":


Chi c’è in linea

Visitano il forum: raimea e 64 ospiti

cron