Newsgroup: it.comp.os.win.software
Titolo: excel: formato personalizzato

In excel ho delle celle con numeri.
Vorrei creare un formato personalizzato in modo da vedere anche le cifre non
significative.
Esempio:    1 deve essere visualizzato come 001
                10 deve essere visualizzato come 010 ecc.
Come si fà ?
Grazie

> palm65:

000
--
Ciao.
Maurizio

 wrote in message
8itqa4$29h$1...@nslave1.tin.it...


 ecco io vorrei trovare una funzione tipo TROVA.ULTIMO per
trovare l'ultimo record in cui è presente la voce mario ho
indicato anche una data perchè lì sò come fare (=MAX...ecc.)
Organizzerei le cose cosi`:
-A- -B-     -C-
1   mario   1/1/2000
2   anna    3/1/2000
3   giorgio 4/1/2000
4   mario   5/1/2000
ossia aggiungendo una colonna contenente un numero progressivo
come identificatore univoco che mi permetta di ordinare in
vari modi i dati ripristinando poi lo stato iniziale.
Quindi farei un ordinamento decrescente per la colonna B e A,
in modo da ottenere:
4 mario ...
1 mario ...
3 giorgio ...
2 anna ...
a questo punto gli ultimi sono i primi e li posso individuare
con la funzione "confronta":
    =CONFRONTA("mario";B1:B4;0)
che restituisce 1 (la posizione in cui il primo "mario", che
e` l'ultimo, si trova in B1:B4) mentre per "giorgio" dara` 3 e
per "anna", 4.
Conoscendo la posizione puoi ricavare qualsiasi altro dato in
tabella per mezzo delle funzioni di "Ricerca e riferimento".
Non credo esista una funzione piu` diretta. Se questo
approccio non corrisponde alle tue necessita` temo che ti
debba fare, o far fare, una funzione personalizzata in Visual
Basic.
--
Ciao.
Maurizio

 per "anna", 4.
Potrebbe scrivere direttamente questa formula per trovare il numero
dell'ultima riga dove e' stato immesso il nome mario:
=CERCA.ORIZZ(A1;A1:B4;CONFRONTA("mario";B1:B4;0);FALSO)
Da' come risultato 4.
Ciao, Max
luc...@libero.it

 Da' come risultato 4.
Quello che non capisco e` il riferimento "A1" come primo
argomento della funzione "CERCA.ORIZZ". Che senso ha? Bada
bene, per funzionare "funziona" ma e` concettualmente
sbagliato.
Dobbiamo ragionare separando nettamente i "dati" e la logica
di ricerca su questi, anche se Excel, per sua natura, ci
consente di fare un gran minestrone scrivendo formule dove ci
pare e piace. Ma non dove ci fa comodo, come scopriremo prima
o poi a nostre spese.
Tale separazione la formula che proponi non la fa in quanto
quell'"A1" chiama in causa come oggetto della ricerca sui dati
un elemento di quegli stessi dati. Spero che questo periodo
non risulti troppo oscuro, perche' secondo me e` un passaggio
importante. Se la cosa interessa possiamo vedere qualche
esempio e continuare il ragionamento.
Avrei sinceramente piacere di conoscere le tue considerazioni
in merito.
--
Ciao.
Maurizio

 in merito.
Non sono un esperto di excel, tutto quello che so sulla funzione CERCA.ORIZZ
l'ho letto sull'help e mi pare d'averne fatto un uso appropriato, se cosi'
non e' la colpa e' di chi ha scritto l'help di excel, non mia :-))
Mi interesserebbe sapere se alla luce di quanto ho specificato ora la mia
formula ti sembra corretta.
Ciao, Max

 > > =CERCA.ORIZZ(A1;A1:B4;CONFRONTA("mario";B1:B4;0);FALSO)
Ok. Tento di spiegarmi meglio.
Nella formula qui sopra A1, l'oggetto della ricerca, e` un
elemento di A1:B4, l'area dati in cui cercare. Quindi non
abbiamo una separazione fra cio` che cerchiamo e l'area di
ricerca.
Perche' e` importante tale separazione? Perche' dobbiamo
immaginare che i dati vivano una vita propria, autonoma e
separata dalle formule che effettuano una ricerca su di loro.
E in cosa consiste la vita dei dati se non in operazioni di
variazione, aggiunta e cancellazione di "record"? Metti che un
bel giorno tu abbia la necessita` di eliminare la riga,
meglio: la porzione di riga, che contiene A1.
Che cosa accadrebbe alla tua formula di ricerca? Questo:
=CERCA.ORIZZ(#RIF!;A1:B3;CONFRONTA("mario";B1:B3;0);FALSO)
Immagini le conseguenze? Se non te ne accorgi subito, se e`
passato un po' di tempo da quando hai scritto le formule, e se
non hai documentazione... potresti metterci un bel po' prima
di ricordare cosa c'era scritto al posto di quel #RIF! E se
non fossi tu, l'autore, l'utente di tale applicazione?
Troppi "se"? Tutto sommato meno dei rigori sbagliati oggi.
Quindi... prima o poi succedera`.
--
Ciao.
Maurizio

 Quindi... prima o poi succedera`.
Scusa, ma nella tua vita, quante altre volte vedrai una squadra che sbaglia
5 rigori su 6 e che gioca proprio contro l'Italia in 11 contro 10? Prima o
poi qualsiasi cosa potra' succedere, non mi sembra un buon motivo per non
usare una formula che funziona sempre a meno che non elimini la prima riga
della tabella di riferimento.
Se il problema di palm65 e' risolvibile in altro modo, va benissimo, ma
l'unico che ho trovato io e' stato quello che ho esposto.
Ciao, Max

 Se il problema di palm65 e' risolvibile in altro modo, va
benissimo, ma l'unico che ho trovato io e' stato quello che ho
esposto.
Non vorrei essere frainteso quindi premetto che, nella maniera
piu` assoluta, non mi interessano bambinate del tipo "sono
piu` bravo" o "io lo so fare e tu no": sinceramente non
capisco cosa intendi quando dici di aver trovato un modo per
risolvere il problema di palm65 in quanto hai messo in pratica
(male, secondo me) la soluzione da me proposta. Io spero che
tu non sia uno dei tanti permalosi ipersensibili che scrivono
sui newsgroup: ho visto spesso la tua firma ed ho sempre
apprezzato i tuoi interventi ma... come si dice... quanno ce
vo' che vo'. Se penso che hai torto lo dico. E spero che tu
faccia altrettanto, con franchezza e con belle e sane
motivazioni argomentate come credo, e spero, siano le mie.
--
Ciao.
Maurizio

 motivazioni argomentate come credo, e spero, siano le mie.
Ma anch'io ho cercato di argomentare le mie motivazioni, non mi sembra
d'essere stato sterilmente polemico. Ti diro' di piu'; quasi tutto
quello che ho imparato su excel, l'ho imparato grazie al ng e a qualche
persona conosciuta sempre tramite il ng che contatto in e-mail ed anche
questi tuoi interventi mi hanno consentito di imparare qualcosa. Di
excel sono un autodidatta, per cui e' facile che prenda fischi per
fiaschi, ma nei miei pochi interventi sul ng in merito all'applicazione,
ho sempre cercato di dare un aiuto a chi lo chiedeva, nei limiti delle
mie capacita' e senza aver mai l'intenzione di far vedere quanto sia
bravo. Lo so benissimo di non essere bravo. Sul fatto che possa essere
permaloso, ti prego, non dirmelo anche tu che ho gia' un'amica che mi
stressa con questa faccenda :-)
Per terminare, continuo a considerare la mia soluzione, come una
soluzione "possibile" (nel senso che io su un mio foglio se non trovassi
di meglio la userei), anche se e' giusto dire che esiste un caso limite
in cui non funziona e che la funzione INDICE e' molto piu' adatta allo
scopo da raggiungere (o a quello che ho inteso dovesse raggiungere
palm65). Pensa che ho un foglio dove la utilizzo per lo stesso identico
motivo, chissa' perche' non mi e' venuta in mente.
Spero d'esser stato chiaro su come la penso e che le mie parole non
possano essere mal interpretate. La cosa piu' difficile nei ng e'
infatti capire il tono con cui si dicono le cose.
Ciao, Max

Ringrazio Maurizio Borrelli e Lucamax per i loro interventi finalizzati alla
soluzione del mio quesito.
La soluzione trovata mi ha aiutato a risolvere il mio problema.
Complimenti per il vs. sapere!!!
Ora vi pongo un nuovo quesito:
Ho dei numeri formattati come 000 (suggerimento di Maurizio) che mi vengono
visualizzati cosě:
A           B
01        001
01        002
01        003
io vorrei che in una terza cella mi comparisse il concatenamento delle celle
A e B, in modo da ottenere un codice a 5 cifre.
esempio:
C
01-001
01-002
01-003
invece se uso il comando CONCATENA ottengo rispettivamente 11   12    13
Avreste la soluzione ?
Grazie in anticipo.

 invece se uso il comando CONCATENA ottengo rispettivamente
11   12    13
Perche' in Excel l'apparenza inganna. E le formule operano non
su come e` formattato un valore ma sul valore stesso (come lo
vedi nella barra della formula). Anche se "vedi" 01 e 001 le
celle continuano a contenere 1 e 1. E CONCATENA, giustamente,
ti restituisce 11. Puoi operare in, almeno, due modi:
O "immagini" di ottenere in C un valore che e` dato da 1 x
1000 + 1, che fa 1.001, e che formatterai in modo da
visualizzarlo come 01-001, oppure converti in stringa (in
testo) i due valori nel formato necessario, poi concateni:
A1: 1 [Formato: "00"]
B1: 1 [Formato: "000"]
Caso 1.
C1: =A1*1000+B1 [Formato: "00-000"]
Caso 2.
C1: =CONCATENA(TESTO(A1;"00");"-";TESTO(B1;"000"))
In questo caso non serve assegnare un formato perche' non
abbiamo ottenuto un valore numerico ma una stringa. Che *e`* e
*appare* come la vogliamo.
La differenza, "sostanziosa", sta nel fatto che nel caso 1
otteniamo in C1 un valore numerico (che possiamo usare per
calcoli senza ulteriori conversioni), mentre nel caso 2 in C1
vi sara` un valore stringa. Decidi tu cosa e` preferibile ai
tuoi fini.
--
Ciao.
Maurizio

Avreste la soluzione ?
=CONCATENA(TESTO(A1;"00");"-";TESTO(B1;"000"))
ciao

 Per terminare, continuo a considerare la mia soluzione, come
una soluzione "possibile" (nel senso che io su un mio foglio
se non trovassi di meglio la userei), [...]
Giusto. *Temporaneamente* giusto.
--
Ciao. Molto cordialmente.
Maurizio

 deserta per aumentare la tua speranza di vita?
Certamente me ne frego :-) anche perche' di zone deserte non so proprio
dove potrei trovarne. Ma vivi in Italia?
A parte gli scherzi, di guida forse me ne intendo un po' piu' che di
excel e non sono mai andato in macchina con qualcuno che sapesse tenere
il volante correttamente. E tu sei sicuro di saperlo fare? :-)
Ciao, Max

 A parte gli scherzi, di guida forse me ne intendo un po'
piu' che di excel e non sono mai andato in macchina con
qualcuno che sapesse tenere il volante correttamente. E tu sei
sicuro di saperlo fare? :-)
Vedo che gli argomenti IT si vanno esaurendo. Di calcio gia`
ne abbiamo parlato, ora di automobili. Visto che e` ben
evidente quale sara` il prossimo argomento che ne dici di
piantarla qui prima di farci cacciare?
--
Ciao.
Maurizio