Google Gruppi non supporta più i nuovi post o le nuove iscrizioni Usenet. I contenuti storici continuano a essere visibili.

[difficile] matrice "impilata" che non viene riconosciuta in grafico se definita tramite nome

21 visualizzazioni
Passa al primo messaggio da leggere

Ciofegates

da leggere,
12 ago 2009, 01:39:2212/08/09
a
Non riesco a definire un nome per impilare una matrice e usarla come
sorgente dati di un istogramma. :(
Mi spiego con un esempio.
In A1:C3 ho i seguenti valori:
101 102 103
104 105 106
107 108 109
Inserendo in G1:G9 la formula (in formato matriciale)
=INDICE($A$1:$C$3;INT((RIF.RIGA($A$1:$A$9)-1)/3)+1;RESTO((RIF.RIGA($A
$1:$A$9)-1);3)+1)
riesco per l'appunto a impilare la matrice, e ottenere i nove valori
precedenti tutti nella stessa colonna.
Posso così creare un grafico istogramma definendo come sorgente dei
dati l'intervallo G1:G9.
Se però definisco un nome, per esempio "stacked", per l'intervallo
G1:G9, e quindi modifico la sorgente dei dati dell'istogramma
sostituendo "stacked" a G1:G9, l'istogramma considera solo il primo
dato anziché tutti e nove i valori.
Perché? Siete in grado di indicarmi una soluzione che non sia quella
ovvia di fare a meno di un nome di cui invece io ho assoluta
necessità? Grazie.

Nur

da leggere,
12 ago 2009, 04:08:4912/08/09
a

"Ciofegates" <ciofe...@mailinater.com> ha scritto nel messaggio
news:797d6a89-d093-4bd9...@a13g2000yqc.googlegroups.com...

Non riesco a definire un nome per impilare una matrice e usarla come
sorgente dati di un istogramma. :(
Mi spiego con un esempio.
In A1:C3 ho i seguenti valori:
101 102 103
104 105 106
107 108 109
Inserendo in G1:G9 la formula (in formato matriciale)
=INDICE($A$1:$C$3;INT((RIF.RIGA($A$1:$A$9)-1)/3)+1;RESTO((RIF.RIGA($A
$1:$A$9)-1);3)+1)
riesco per l'appunto a impilare la matrice, e ottenere i nove valori
precedenti tutti nella stessa colonna.
Posso cos� creare un grafico istogramma definendo come sorgente dei

dati l'intervallo G1:G9.
Se per� definisco un nome, per esempio "stacked", per l'intervallo

G1:G9, e quindi modifico la sorgente dei dati dell'istogramma
sostituendo "stacked" a G1:G9, l'istogramma considera solo il primo
dato anzich� tutti e nove i valori.
Perch�? Siete in grado di indicarmi una soluzione che non sia quella

ovvia di fare a meno di un nome di cui invece io ho assoluta
necessit�? Grazie.
**************

Ciao,
come � definito esattamente il nome 'stacked'?
E' un riferimento all'intervallo G1:G9 o � la matrice?

Ciao, Nur


Ciofegates

da leggere,
12 ago 2009, 05:35:5412/08/09
a
> come è definito esattamente il nome 'stacked'?
> E' un riferimento all'intervallo G1:G9 o è la matrice?

"stacked" è definito così:
=INDICE(Foglio1!$A$1:$C$3;INT((RIF.RIGA(Foglio1!$A$1:$A$9)-1)/
3)+1;RESTO((RIF.RIGA(Foglio1!$A$1:$A$9)-1);3)+1)

Ignazio

da leggere,
12 ago 2009, 06:53:3112/08/09
a
"Ciofegates" <ciofe...@mailinater.com> ha scritto nel messaggio
news:797d6a89-d093-4bd9...@a13g2000yqc.googlegroups.com...
Non riesco a definire un nome per impilare una matrice e usarla come
sorgente dati di un istogramma. :(
Mi spiego con un esempio.
In A1:C3 ho i seguenti valori:
101 102 103
104 105 106
107 108 109
Inserendo in G1:G9 la formula (in formato matriciale)
=INDICE($A$1:$C$3;INT((RIF.RIGA($A$1:$A$9)-1)/3)+1;RESTO((RIF.RIGA($A
$1:$A$9)-1);3)+1)
riesco per l'appunto a impilare la matrice, e ottenere i nove valori
precedenti tutti nella stessa colonna.
Posso cos� creare un grafico istogramma definendo come sorgente dei

dati l'intervallo G1:G9.
Se per� definisco un nome, per esempio "stacked", per l'intervallo

G1:G9, e quindi modifico la sorgente dei dati dell'istogramma
sostituendo "stacked" a G1:G9, l'istogramma considera solo il primo
dato anzich� tutti e nove i valori.
Perch�? Siete in grado di indicarmi una soluzione che non sia quella

ovvia di fare a meno di un nome di cui invece io ho assoluta
necessit�? Grazie.

---------------------
RISPONDI

Perch� hai l'assoluta necessit� di riferire il grafico ad un intervallo che
ha un nome?
Se spieghi lo scopo che ti prefiggi, sar� pi� facile darti una risposta.

--
Ciao,
Ignazio
RIO: www.riolab.org


Ignazio

da leggere,
12 ago 2009, 07:01:1012/08/09
a
"Ignazio" <i_putign...@SeScriviAvirgilio.it> ha scritto nel messaggio
news:uBVHEqzG...@TK2MSFTNGP05.phx.gbl...

> ---------------------
> RISPONDI

oops...
RISPOSTA .... anche se sarebbe pi� corretto ;)

--------------------
DOMANDA

> Perch� hai l'assoluta necessit� di riferire il grafico ad un intervallo
che
> ha un nome?

--
Ciao,
Ignazio
RIO: www.riolab.org


Nur

da leggere,
12 ago 2009, 07:00:0912/08/09
a

"Ciofegates" <ciofe...@mailinater.com> ha scritto nel messaggio
news:f06a81f1-b6ab-4916...@s31g2000yqs.googlegroups.com...
> come � definito esattamente il nome 'stacked'?
> E' un riferimento all'intervallo G1:G9 o � la matrice?

"stacked" � definito cos�:


=INDICE(Foglio1!$A$1:$C$3;INT((RIF.RIGA(Foglio1!$A$1:$A$9)-1)/
3)+1;RESTO((RIF.RIGA(Foglio1!$A$1:$A$9)-1);3)+1)

***********
Prova a visualizzare (tasto F9 sulla barra della formula) cosa restiuisce
questa formula.
Visualizzerai il primo valore, non *la matrice*.

Per capire la differenza, prova invece a scrivere in una cella
=RIF.RIGA($A$1:$A$9)
Con F9 visualizzerai: {1\2\3\4\5\6\7\8\9}

Il grafico ti visualizza ci� che 'stacked' rappresenta.

Non potresti, invece, tenere l'intervallo G1:G9 come appoggio e definire per
quel range un nome, magari dinamico?
Cosa intendi dicendo che hai *assoluta* necessit� del nome?

Ciao, Nur


Nur

da leggere,
12 ago 2009, 08:07:3212/08/09
a

"Nur" <news...@gmail.com> ha scritto nel messaggio
news:erInSwzG...@TK2MSFTNGP03.phx.gbl...
Ciao,
riprendendo il discorso (prima ero di corsa), per poter utilizzare il nome
nel grafico e rappresentare tutti i valori, bisogna che il 'nome' li
contenga.
Premetto che non capisco che problema ti possa creare il range d'appoggio,
ma, se proprio proprio vuoi farne a meno, ti propongo un'alternativa.

Definisci cos� il nome 'stacked':
=PICCOLO(MAX($A$1:$C$3)*(3*(RIF.RIGA($1:$3)-1)+RIF.COLONNA($A:$C))+$A$1:$C$3;RIF.RIGA($1:$9))-MAX($A$1:$C$3)*RIF.RIGA($1:$9)

Questa *�* una matrice (che probabilmente si potrebbe scrivere anche
meglio... sono 'leggermente' fuori allenamento..).

Ciao, Nur


Ciofegates

da leggere,
12 ago 2009, 17:06:1312/08/09
a
> Premetto che non capisco che problema ti possa creare il range d'appoggio,
> ma, se proprio proprio vuoi farne a meno, ti propongo un'alternativa.

Creare un file d'appoggio per una tabella di decine di righe e colonne
diventa dispendioso. Se poi aggiungiamo il fatto che la persona che ci
lavorerà sopra può aggiungere righe e colonne alla tabella, ma non ha
la minima capacità di intervenire sulle formule, l'uso dei nomi
diventa una strada obbligata.

> Definisci così il nome 'stacked':


> =PICCOLO(MAX($A$1:$C$3)*(3*(RIF.RIGA($1:$3)-1)+RIF.COLONNA($A:$C))+$A$1:$C$3;RIF.RIGA($1:$9))-MAX($A$1:$C$3)*RIF.RIGA($1:$9)
>

Ecco, così funziona. E' un po' macchinoso, ma risponde alle mie
esigeze. Grazie mille.

fernando cinquegrani

da leggere,
12 ago 2009, 20:02:3312/08/09
a

"Nur" <news...@gmail.com> ha scritto nel messaggio
news:eMIj8V0G...@TK2MSFTNGP03.phx.gbl...

>
> Definisci cos� il nome 'stacked':
> =PICCOLO(MAX($A$1:$C$3)*(3*(RIF.RIGA($1:$3)-1)+RIF.COLONNA($A:$C))+$A$1:$C$3;RIF.RIGA($1:$9))-MAX($A$1:$C$3)*RIF.RIGA($1:$9)
>
> Questa *�* una matrice (che probabilmente si potrebbe scrivere anche
> meglio... sono 'leggermente' fuori allenamento..).

� la stessa, ma pi� chiara
=PICCOLO(((RIF.RIGA(in)-1)*COLONNE(in)+RIF.COLONNA(in))*MAX(mat)+mat;RIF.RIGA(out))-RIF.RIGA(out)*MAX(mat)

dove mat � la matrice originaria (anche dinamica)
in � =SCARTO(Foglio1!$A$1;0;0;RIGHE(mat);COLONNE(mat))
out � =SCARTO(Foglio1!$A$1;0;0;RIGHE(mat)*COLONNE(mat);1)
.f


Ciofegates

da leggere,
13 ago 2009, 01:55:5313/08/09
a
=PICCOLO(((RIF.RIGA(in)-1)*COLONNE(in)+RIF.COLONNA(in))*MAX(mat)
+mat;RIF.RIGA(out))-RIF.RIGA(out)*MAX(mat)
>
> dove mat è la matrice originaria (anche dinamica)
> in è =SCARTO(Foglio1!$A$1;0;0;RIGHE(mat);COLONNE(mat))
> out è =SCARTO(Foglio1!$A$1;0;0;RIGHE(mat)*COLONNE(mat);1)


Ottimo davvero. Grazie ancora a tutti.

Nur

da leggere,
13 ago 2009, 05:41:5613/08/09
a

"fernando cinquegrani" <f.cinq...@xroxxmxxxa.it> ha scritto nel
messaggio news:eYjbvl6G...@TK2MSFTNGP04.phx.gbl...

>
> "Nur" <news...@gmail.com> ha scritto nel messaggio
> news:eMIj8V0G...@TK2MSFTNGP03.phx.gbl...
>>
>> Definisci cos� il nome 'stacked':
>> =PICCOLO(MAX($A$1:$C$3)*(3*(RIF.RIGA($1:$3)-1)+RIF.COLONNA($A:$C))+$A$1:$C$3;RIF.RIGA($1:$9))-MAX($A$1:$C$3)*RIF.RIGA($1:$9)
>>
>> Questa *�* una matrice (che probabilmente si potrebbe scrivere anche
>> meglio... sono 'leggermente' fuori allenamento..).
>
> � la stessa, ma pi� chiara
> =PICCOLO(((RIF.RIGA(in)-1)*COLONNE(in)+RIF.COLONNA(in))*MAX(mat)+mat;RIF.RIGA(out))-RIF.RIGA(out)*MAX(mat)

Certo, � pi� chiara.
La versione che ho postato io implica la necessit� di capire esattamente
come (e cosa) andrebbe 'adattato' al variare delle dimensioni e della
posizione di 'mat'.

In ogni caso, continuo a non capire l'impossibilit� di usare una colonna
d'appoggio (una colonna, non un file) dove portare la matrice in colonna,
ottenendo un range al quale far riferimento con un nome dinamico, ma, non
conoscendo il contesto di Ciofegates, non me la sento di insistere!

Ciao, Nur


fernando cinquegrani

da leggere,
13 ago 2009, 14:09:2713/08/09
a

"Nur" <news...@gmail.com> ha scritto nel messaggio
news:ueoDWp$GKHA...@TK2MSFTNGP03.phx.gbl...

> In ogni caso, continuo a non capire l'impossibilit� di usare una colonna
> d'appoggio (una colonna, non un file) dove portare la matrice in colonna,
> ottenendo un range al quale far riferimento con un nome dinamico, ma, non
> conoscendo il contesto di Ciofegates, non me la sento di insistere!

se ho capito il contesto, non ha neppure molto senso trasferire
i dati in un range perch� il grafico sarebbe del tutto uguale sia
con i dati in formato matrice che con i dati in formato vettore
(excel a volte delle cose le ingrana naturalmente).

ma ciofegates fa sempre delle domande interessanti, sperimenta,
e costinge a sperimentare, spesso cose nuove.

quello del ridimensionamento di matrici � un campo molto ricco
per i grafici. io mi trovo spesso a utilizzare la formula opposta
a quella richiesta da ciofegates: come trasformare un vettore
in una matrice (essenziale nei grafici a dispersione un po'
complicati).

ossia:
=CERCA((RIF.RIGA(in)-1)*COLONNE(in)+RIF.COLONNA(in);RIF.RIGA(out);stacked)
.f


Nur

da leggere,
14 ago 2009, 06:29:2014/08/09
a

"fernando cinquegrani" <f.cinq...@xroxxmxxxa.it> ha scritto nel
messaggio news:%23oXH8EE...@TK2MSFTNGP02.phx.gbl...

>
> "Nur" <news...@gmail.com> ha scritto nel messaggio
> news:ueoDWp$GKHA...@TK2MSFTNGP03.phx.gbl...

>


> ma ciofegates fa sempre delle domande interessanti, sperimenta,
> e costinge a sperimentare, spesso cose nuove.

Vero, da sempre!

Riprendendo il problema originale (cio� rappresentare su un istogramma una
matrice), mi sono accorta di una cosa che io non sapevo.

Prendiamo il caso di Ciofegates (ciao, se ci segui ancora!)

In A1:C3 ho i seguenti valori:
101 102 103
104 105 106
107 108 109

Chiamiamo Rng il range A1:C3.
Se proviamo ad usare Rng come serie per l'istogramma, ci dice che il
riferimento non � valido perch� deve comprendere una sola cella, riga,
colonna.

Per�, se il nome Rng lo definiamo cos�:
=Foglio1!$A$1:$C$3*{1;1;1}

allora lo accetta e l'istogramma presenta direttamente tutti i suoi bei
valori in ordine, come se provenissero dalla matrice 'impilata'.
Naturalmente quella {1;1;1} si pu� anche generalizzare in modo da renderla
dinamica (tipo RIF.COLONNA(A:C)^0 o qualcos'altro)

Che dici fernando? E' cos�, o sto facendo confusione su una cosa gi� ovvia?

Ciao, Nur


fernando cinquegrani

da leggere,
14 ago 2009, 09:25:1914/08/09
a

"Nur" <news...@gmail.com> ha scritto nel messaggio
news:u6tpdoMH...@TK2MSFTNGP02.phx.gbl...
>

> Chiamiamo Rng il range A1:C3.
> Se proviamo ad usare Rng come serie per l'istogramma, ci dice che il
> riferimento non � valido perch� deve comprendere una sola cella, riga,
> colonna.
>
> Per�, se il nome Rng lo definiamo cos�:
> =Foglio1!$A$1:$C$3*{1;1;1}
>
> allora lo accetta e l'istogramma presenta direttamente tutti i suoi bei
> valori in ordine, come se provenissero dalla matrice 'impilata'.
> Naturalmente quella {1;1;1} si pu� anche generalizzare in modo da renderla
> dinamica (tipo RIF.COLONNA(A:C)^0 o qualcos'altro)
>
> Che dici fernando? E' cos�, o sto facendo confusione su una cosa gi�
> ovvia?

no, n� confusione, n� ovviet�.

ne parlo un po' qui:
http://groups.google.it/group/microsoft.public.it.office.excel/browse_thread/thread/c8e99c7b23ef2a
e la applico in alcuni esempi
(anche qui, ma a solo scopo di non far capire nulla :-):
http://social.microsoft.com/Forums/it-IT/officeit/thread/f6f48069-3fe1-4eb7-8ddf-dc8a3bff2f2e )
.

[avrei voluto applicarla qui:
http://groups.google.it/group/microsoft.public.it.office.excel/browse_thread/thread/4acdf11047c6f64b
ma non ci sono riuscito. mi occorreva un po' di tempo;
ora che sono in vacanza (a 126 metri *al* livello del mare :-) )
ci riprover�]

ne riparliamo.
intanto prova, pi� semplicemente:
=Foglio1!$A$1:$C$3*{1} o
=Foglio1!$A$1:$C$3+{0}
non dovrebbero esserci differenze.
.f


Nur

da leggere,
14 ago 2009, 09:59:1514/08/09
a

"fernando cinquegrani" <f.cinq...@xroxxmxxxa.it> ha scritto nel
messaggio news:%237cWyKO...@TK2MSFTNGP05.phx.gbl...

>
> ora che sono in vacanza (a 126 metri *al* livello del mare :-) )
> ci riprover�]

Beato te, conto di ritornarci anch'io presto... vicino *al* 126 metri a
livello del mare :-)

>
> ne riparliamo.
> intanto prova, pi� semplicemente:
> =Foglio1!$A$1:$C$3*{1} o
> =Foglio1!$A$1:$C$3+{0}
> non dovrebbero esserci differenze.
> .f
>

Infatti, non ce ne sono.
Interessante. Certo, ne riparliamo.

(buone ferie)
Ciao, Nur


0 nuovi messaggi