Condividi:        

[Excel] - Compilazione automatica di celle

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

Re: [Excel] - Compilazione automatica di celle

Postdi Gattuccio0 » 11/09/13 14:41

Come al solito la fretta mi fa fare errori:

La funzione in BA2 è perfetta (per forza, la hai fatta tu).

Ho nominato l'intervallo con un nome e, nel foglio ORDINE in C3, nettendo la funzione =nomeintervallo quando chiudo (salvando) rimane in memoria alla riapertura del file.


Ti chiedo due cose:
1) la cella C3 del foglio ORDINE risulta vuota se scelgo Accessories o Gift Box può dipendere dal fatto che, compilando nel foglio Prodtti le celle C2 e dalle celle da E2 a F5 con una descrizione testuale e non numerica (in quanto il modello ed il colore delle tipologie di moka non siano espresse in numeri)?

2) se non provo non imparo e quindi ti chiedo se mi potresti spiegare questa funzione:


[quote="Anthony47"]
Codice: Seleziona tutto
=INDICE(Prodotti!$C$1:$C$2000;PICCOLO(SE(((SOSTITUISCI(Prodotti!D$1:D$2000;" ";"_")=ORDINE!C$22)*(Prodotti!E$1:E$2000=ORDINE!D$22)*(CONTA.SE(BA$1:BA1;Prodotti!C$1:C$2000)=0));RIF.RIGA(Prodotti!A$1:A$2000);"");1))


Ricercando on line riesco a risalire ai significati di INDICE, CONTA.SE, ecc. ma non mi sono schiari gli asterischi tra chiusura e riapertura delle parentesi.
Gattuccio0
Utente Senior
 
Post: 186
Iscritto il: 22/06/09 12:46

Sponsor
 

Re: [Excel] - Compilazione automatica di celle

Postdi Anthony47 » 11/09/13 21:18

La formula prende dall' intervallo Prodotti!C1:C2000 (quindi dal campo Cups) la cella che contiene il primo numero non ancora presente nell' elenco che si sta' costruendo in BA2 e sottostanti, col vincolo che Prodotto e Modello siano pari a quanto impostato in ORDINE!C$22 e ORDINE!D$22. Per determinare quale e' questa cella controllo che (1) la colonna D sia pari a ORDINE!C$22, (2) la colonna E sia pari a ORDINE!D$22 e (3) la colonna C non sia gia' in elenco.
L' asterisco di cui parli e' l' operatore "moltiplicatore", che serve per simulare l' And delle tre condizioni.

Con l' occasione preciso che se il tuo elenco non e' certamente inferiore a 2000 righe allora conviene aumentare TUTTI quei 2000, portandoli a un valore idoneo a coprire il tuo elenco di prodotti; puoi anche esagerare, ...ma non troppo per evitare di mangiare inutilmente memoria del pc.

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

Re: [Excel] - Compilazione automatica di celle

Postdi Anthony47 » 11/09/13 21:33

Non ho capito la storia de "la cella C3 del foglio ORDINE risulta vuota se scelgo Accessories o Gift Box"; nel file che ho io in C3 c' e' la scritta "Denominazione Azienda", che immagino contenga il nome della vostra societa'.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] - Compilazione automatica di celle

Postdi Gattuccio0 » 11/09/13 21:56

Anthony47 ha scritto:Non ho capito la storia de "la cella C3 del foglio ORDINE risulta vuota se scelgo Accessories o Gift Box"; nel file che ho io in C3 c' e' la scritta "Denominazione Azienda", che immagino contenga il nome della vostra societa'.



Volevo dire non C3 ma E22 (si, si...lo so...non si assomigliano per niente ma ho davanti il file e avevo letto la C dell'intestazione C(ups) e dando risultato 3 (tazze) ho fatto una frittata scrivendo C3
Gattuccio0
Utente Senior
 
Post: 186
Iscritto il: 22/06/09 12:46

Re: [Excel] - Compilazione automatica di celle

Postdi Gattuccio0 » 11/09/13 23:12

Ecco Anthony,
ho una bella notizia e che mi soddisfa: sono riuscito a creare la funzione corretta da mettere nel foglio ORDINE in J22:
ho creato in Liste, in BB la seguente funzione:

Codice: Seleziona tutto
 =INDICE(Prodotti!$I$1:$I$2000;PICCOLO(SE(((SOSTITUISCI(Prodotti!D$1:D$2000;" ";"_")=ORDINE!C$22)*(Prodotti!E$1:E$2000=ORDINE!D$22)*(Prodotti!C$1:C$2000=ORDINE!E$22)*(Prodotti!H$1:H$2000=ORDINE!H$22)*(CONTA.SE(BB$1:BB1;Prodotti!I$1:I$2000)=0));RIF.RIGA(Prodotti!A$1:A$2000);"");1))


mentre in H22 ho fatto una convalida il cui Risultato è

Codice: Seleziona tutto
 =SCARTO(Liste!$BB$2;0;0;CONTA.NUMERI(Liste!$BB$2:$BB$50);1)


E tutto mi torna...ora vado avanti con gli altri campi e vediamo se riesco a finire il tutto.
Gattuccio0
Utente Senior
 
Post: 186
Iscritto il: 22/06/09 12:46

Re: [Excel] - Compilazione automatica di celle

Postdi Gattuccio0 » 12/09/13 11:54

Ho completato tutte le funzioni senza avere problemi tranne che nell'ultima: quella contenuta in BD2 foglio Liste che mi da errore e non riesco a capire dove sbaglio.

Metto il file aggiornato qui http://we.tl/GyesnLiql4
Gattuccio0
Utente Senior
 
Post: 186
Iscritto il: 22/06/09 12:46

Re: [Excel] - Compilazione automatica di celle

Postdi Anthony47 » 12/09/13 14:51

la [convalida della cella C22] del foglio ORDINE risulta vuota se scelgo [Prodotto=]Accessories [e Model=]Gift Box

Nel file pubblicato, vedo che in foglio ORDINE, cella "Product", la convalida consente di introdurre i valori Accessories /Moka_Chef /Moka_Class; sul foglio Prodotti tuttavia quel campo contiene i valori Induction Interface Disc /Gift Box /Moka Chef /Moka Class
C' e' quindi un disallineamento tra le liste di convalida e l' elenco dei prodotti, per cui la combinazione Accessories /Gift Box non e' presente e quindi non restituira', per il campo Cups, nessun valore.
D' altra parte se le liste sono compilate a mano (come mi sembra sia fatto sul tuo foglio Liste) e' difficile garantire l' allineamento; per questo motivo ti avevo scritto "[...] potresti adottare lo stesso sistema anche per gli altri elenchi, evitando quindi la costruzione di elenchi statici, la cui corrispondenza a quanto elencato in foglio Prodotti e' sempre critica", usare cioe' il criterio adottato per la costruzione dell' elenco di convalida per Cups (vedi viewtopic.php?f=26&t=98741#p576531), suggerimento che rinnovo (e che portera' a semplificare le formule che lavorano su campi in cui, nella convalida, si sostituiscono caratteri con altri (es "spazio" --> "_", oppure eliminazione di parentesi; come quella che sto' per darti!).
Cio' detto, se anche nell' elenco di convalida usi "_" in sostituzione dello "spazio" (cosa che hai fatto, immagino, pensando di poter poi usare un intervallo con quel nome per la convalida subordinata) allora dovrai usare Sostituisci anche nel confronto della colonna E, cioe' userai in BA2 e sottostanti:
Codice: Seleziona tutto
=INDICE(Prodotti!$C$1:$C$2000;PICCOLO(SE(((SOSTITUISCI(Prodotti!D$1:D$2000;" ";"_")=ORDINE!C$22)*(SOSTITUISCI(Prodotti!E$1:E$2000;" ";"_")=ORDINE!D$22)*(CONTA.SE(BA$1:BA1;Prodotti!C$1:C$2000)=0));RIF.RIGA(Prodotti!A$1:A$2000);"");1))

Sono contento che hai imparato a replicare questo metodo anche sulle convalide di altre colonne.

Ho poi guardato il contenuto del file pubblicato stamattina; quanto al calcolo in Liste!BD2 e sottostanti, la formula contiene diversi errori:
>nel campo Cups non c' e' da fare nessuna sostituzione di "spazio" in "_" (vedi SOSTITUISCI(Prodotti!C$1:C$2000;" ";"_")=ORDINE!E$22)
>la sostituzione e' invece da fare nel campo Products (vedi Prodotti!D$1:D$2000=ORDINE!C$22)
>il confronto Prodotti!I$1:I$2000=ORDINE!J$22 non ha senso e va eliminato
>il campo Ordine!F22 (Colors) differisce da quanto elencato in Prodotti colonna F per la sostituzione di "spazio" con "_" e l' eliminazione delle parentesi
Insomma la formula giusta in BD2 e sottostanti sarebbe
Codice: Seleziona tutto
=INDICE(Prodotti!$B$1:$B$2000;PICCOLO(SE(((Prodotti!C$1:C$2000=ORDINE!E$22)*(SOSTITUISCI(Prodotti!D$1:D$2000;" ";"_")=ORDINE!C$22)*(Prodotti!E$1:E$2000=ORDINE!D$22)*(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(Prodotti!F$1:F$2000;" ";"_");")";"");"(";"")=ORDINE!F$22)*(Prodotti!G$1:G$2000=ORDINE!G$22)*(Prodotti!H$1:H$2000=ORDINE!H$22)*(CONTA.SE(BE$1:BE1;Prodotti!B$1:B$2000)=0));RIF.RIGA(Prodotti!A$1:A$2000);"");1))

Tuttavia, che senso ha inserire formule da BD2 a BD1000 e passa? Il Codice prodotto non e' uno solo? Quindi dovrebbe bastare solo la formula in BD2, semplificandola in
Codice: Seleziona tutto
=INDICE(Prodotti!$B$1:$B$2000;PICCOLO(SE(((Prodotti!C$1:C$2000=ORDINE!E$22)*(SOSTITUISCI(Prodotti!D$1:D$2000;" ";"_")=ORDINE!C$22)*(Prodotti!E$1:E$2000=ORDINE!D$22)*(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(Prodotti!F$1:F$2000;" ";"_");")";"");"(";"")=ORDINE!F$22)*(Prodotti!G$1:G$2000=ORDINE!G$22)*(Prodotti!H$1:H$2000=ORDINE!H$22));RIF.RIGA(Prodotti!A$1:A$2000);"");1))

(eliminata quindi la componente *(CONTA.SE(BE$1:BE1;Prodotti!B$1:B$2000)=0))
Ovviamente va anche variata la condizione di Convalida in Ordine!K22

Lo stesso discorso si applica alla lista di convalida di "Prezzo unitario" (Convalida!J22) e al relativo elenco in Liste!BC

Tra l' altro, l' eliminazione delle tante formule a matrice inutili aumenta la velocita' di ricalcolo nel file.

Mentre provavo ho trovato l' intervallo "Home" dichiatato come validita' limitato al foglio Liste; questo rende impossibile la convalida in Ordine!F22. Non ho controllato altri nomi. A te, partendo da questa segnalazione, correggere gli errori.

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

Re: [Excel] - Compilazione automatica di celle

Postdi Gattuccio0 » 12/09/13 15:16

...deduco che sarà una lunga, lunga nottata...ok.
Mi rimbocco le maniche e apporto tutte le modifiche.
Gattuccio0
Utente Senior
 
Post: 186
Iscritto il: 22/06/09 12:46

Re: [Excel] - Compilazione automatica di celle

Postdi Gattuccio0 » 12/09/13 22:10

Anthony47 ha scritto:Nel file pubblicato, vedo che in foglio ORDINE, cella "Product", la convalida consente di introdurre i valori Accessories /Moka_Chef /Moka_Class; sul foglio Prodotti tuttavia quel campo contiene i valori Induction Interface Disc /Gift Box /Moka Chef /Moka Class
C' e' quindi un disallineamento tra le liste di convalida e l' elenco dei prodotti, per cui la combinazione Accessories /Gift Box non e' presente e quindi non restituira', per il campo Cups, nessun valore.



Difatti: inizialmente ero partito dal Foglio ORDINE creando un elenco statico in C22 come punto di partenza. Come avevo già anticipato ho creato dei menu dinamici fin tanto che potevo nominare liste differenti (per qusto i nomi storpiati con le "_" e via dicendo).

Con il codice qui sotto vado a trovare le sclte per compilare la cella E22. Dietro tuo suggerimento la potrei usare per trovare tutte le altre celle che mi servono senza dover fare menu a tendina statici o incasinarmi con le formule.

Codice: Seleziona tutto
=INDICE(Prodotti!$C$1:$C$2000;PICCOLO(SE(((SOSTITUISCI(Prodotti!D$1:D$2000;" ";"_")=ORDINE!C$22)*(SOSTITUISCI(Prodotti!E$1:E$2000;" ";"_")=ORDINE!D$22)*(CONTA.SE(BA$1:BA1;Prodotti!C$1:C$2000)=0));RIF.RIGA(Prodotti!A$1:A$2000);"");1))


Ma da questa funzione, in teoria, io trovo D22 dando per scontato di avere già E22 (che io in precedenza avevo ottenuto con una convalida il cui Risultato è =INDIRETTO(C22).
Sono contento che hai imparato a replicare questo metodo anche sulle convalide di altre colonne.

Anthony47 ha scritto: Insomma la formula giusta in BD2 e sottostanti sarebbe
Codice: Seleziona tutto
=INDICE(Prodotti!$B$1:$B$2000;PICCOLO(SE(((Prodotti!C$1:C$2000=ORDINE!E$22)*(SOSTITUISCI(Prodotti!D$1:D$2000;" ";"_")=ORDINE!C$22)*(Prodotti!E$1:E$2000=ORDINE!D$22)*(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(Prodotti!F$1:F$2000;" ";"_");")";"");"(";"")=ORDINE!F$22)*(Prodotti!G$1:G$2000=ORDINE!G$22)*(Prodotti!H$1:H$2000=ORDINE!H$22)*(CONTA.SE(BE$1:BE1;Prodotti!B$1:B$2000)=0));RIF.RIGA(Prodotti!A$1:A$2000);"");1))


Prima di fare il copia incolla ho cercato di seguire il ragionamento. E quel BE (probabilmente una svista) non mi tornava. Copio ed incolla la funzione ed in effetti da errore. Così ho sostituito BE in DB.

Non solo...al posto di inserire la formula in BD2, dovrebbe essere più giusto collocarla in K22 del foglio ordine in quanto non devo ottenere un menu a tendina bensì deve darmi un risultato univoco.

Almeno questa è la mia sensazione...difatti quando poi giustamente dici


Anthony47 ha scritto:che senso ha inserire formule da BD2 a BD1000 e passa? Il Codice prodotto non e' uno solo? Quindi dovrebbe bastare solo la formula in BD2, semplificandola in
Codice: Seleziona tutto
=INDICE(Prodotti!$B$1:$B$2000;PICCOLO(SE(((Prodotti!C$1:C$2000=ORDINE!E$22)*(SOSTITUISCI(Prodotti!D$1:D$2000;" ";"_")=ORDINE!C$22)*(Prodotti!E$1:E$2000=ORDINE!D$22)*(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(Prodotti!F$1:F$2000;" ";"_");")";"");"(";"")=ORDINE!F$22)*(Prodotti!G$1:G$2000=ORDINE!G$22)*(Prodotti!H$1:H$2000=ORDINE!H$22));RIF.RIGA(Prodotti!A$1:A$2000);"");1))

(eliminata quindi la componente *(CONTA.SE(BE$1:BE1;Prodotti!B$1:B$2000)=0))
Ovviamente va anche variata la condizione di Convalida in Ordine!K22


O magari intendevi questo...

Anthony47 ha scritto:Mentre provavo ho trovato l' intervallo "Home" dichiatato come validita' limitato al foglio Liste; questo rende impossibile la convalida in Ordine!F22. Non ho controllato altri nomi. A te, partendo da questa segnalazione, correggere gli errori.



Idem con patate...anche qui da buon stacanovista autodidatta con la passione della facilità avevo fatto una funzione con risultato =INDIRETTO(D22)
Gattuccio0
Utente Senior
 
Post: 186
Iscritto il: 22/06/09 12:46

Re: [Excel] - Compilazione automatica di celle

Postdi Anthony47 » 13/09/13 01:13

Direi che hai scritto e fatto cose sensate...

La formula per l' elenco dei codici in effetti io l' avevo inserita in colonna BE per confrontarla a pezzi con la tua originale in BD; e se e' giusto che c' e' solo 1 unico prezzo e 1 unico codice allora le relative formule possono essere sviluppate direttamente in foglio Ordine, J22 e K22.
In questo secondo caso sara' opportuno trasformare i riferimenti verso ORDINE!E$22, ORDINE!C$22, ORDINE!D$22 etc in E22, C22, D22 etc (nome foglio si puo' omettere, il $ si deve togliere per poter copiare le formule verso il basso); come pure potra' essere opportuno inserire la formula in un Se per condizionarla alla presenza almeno di una scelta in C22, tipo: =SE(C22<>"";LaFormula;"")

Se hai dubbi siamo qua.

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

Re: [Excel] - Compilazione automatica di celle

Postdi Gattuccio0 » 13/09/13 12:15

Allora...se ho ben capito la cronologia:
I nomi di tutti i prodotti, colori, ecc. li scrivo omettendo tutti quegli underscore (almeno avrò delle liste "pulite" e meglio collegate, buttando tutta quella roba che ho fatto precedentemente da A fino ad Az più o meno...in modo che il file sia anche più leggero).
Poi:

Foglio ORDINE.
C22 (la cella di partenza) avrà un elenco statico con tutti i prodotti.

Foglio Liste creo da BA (ma potrei anche partire da A se butto via tutto quello che ho fatto) delle formule da cui creerò delle liste che mi serviranno da inserire in tutte le convalide del foglio ORDINE.

Le funzioni a partire da BA dovranno essere come la seguente (andando a trasformare i riferimenti) ovvero come quella da cui siamo partiti per i risultati di C22...che, invece, ora partiranno da =INDICE(Prodotti!$E$1:$E$2000; la cella che contiene il primo numero non ancora presente nell' elenco che si sta' costruendo in BA2 e sottostanti essendo la colonna D quella relativa ai prodotti che sono il dato conosciuto come prima scelta del foglio ORDINE :

Codice: Seleziona tutto
=INDICE(Prodotti!$E$1:$E$2000;PICCOLO(SE(((SOSTITUISCI(Prodotti!D$1:D$2000;" ";)=ORDINE!C$22)*(Prodotti!E$1:E$2000=ORDINE!D$22)*(CONTA.SE(AZ$1:AZ1;Prodotti!E$1:E$2000)=0));RIF.RIGA(Prodotti!A$1:A$2000);"");1))


E' corretto?
Gattuccio0
Utente Senior
 
Post: 186
Iscritto il: 22/06/09 12:46

Re: [Excel] - Compilazione automatica di celle

Postdi Anthony47 » 13/09/13 23:59

Confesso che non ho capito integralmente il tuo messaggio.
Comunque:
Anche per la convalida di C22 puoi usare quella formula per creare una lista che sia coerente con l' elenco Prodotti, invece che una lista statica.
Nella funzione INDICE, la "matrice" (il primo parametro nella formula) corrispondera' a quale lista vuoi creare: quindi sara' C$1:C$2000 se parliamo di Cups, B$1:B$2000 se parliamo di Codice, D$1:D$2000 se parliamo di Product, e cosi' via (a proposito: 2000 righe sono sufficienti oggi e domani?)

Noto con piacere che anche tu hai fatto un "errore di parallasse" nella formula tipo che hai scritto: se la formula va in BA2 allora devi usare "Conta.Se(BA$1:BA1; etc etc)"

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

Re: [Excel] - Compilazione automatica di celle

Postdi Gattuccio0 » 14/09/13 10:14

Ciao Anthony,
mi rifacevo al tuo messaggio in cui mi facevi notare che, da come avevo impostato io gli elenchi dinamici, per poter avere i risultati avevo dovuto storpiare i nomi inserendo gli underscore)...il che da un risultato meno "pulito".

Ora mi metto di buzzo buono e provo a rifare il tutto.

Anthony47 ha scritto:Noto con piacere che anche tu hai fatto un "errore di parallasse" nella formula tipo che hai scritto: se la formula va in BA2 allora devi usare "Conta.Se(BA$1:BA1; etc etc)"


Ho messo AZ in quanto in BA c'è la formula che mi restituisce il numero di tazze. In AZ vorrei mettere la formula che restituisce il nome dei modelli.

Comincio i test.
Gattuccio0
Utente Senior
 
Post: 186
Iscritto il: 22/06/09 12:46

Re: [Excel] - Compilazione automatica di celle

Postdi Gattuccio0 » 14/09/13 10:48

Ultima cosa che non ho ancora capito:
siamo partiti con una formula per creare un elenco per il numero di tazze che è la seguente

[code] =INDICE(Prodotti!$C$1:$C$2000;PICCOLO(SE(((SOSTITUISCI(Prodotti!D$1:D$2000;" ";"_")=ORDINE!C$22)*(SOSTITUISCI(Prodotti!E$1:E$2000;" ";"_")=ORDINE!D$22)*(CONTA.SE(BA$1:BA1;Prodotti!C$1:C$2000)=0));RIF.RIGA(Prodotti!A$1:A$2000);"");1))[\code]

Ma con questa funzione io avevo altre celle con cui creare dei controlli (difatti l'operatore moltiplicatore simula dei controlli).

Ma se io volessi applicare la stessa formula per trovare D22 del foglio ordine?
Gattuccio0
Utente Senior
 
Post: 186
Iscritto il: 22/06/09 12:46

Re: [Excel] - Compilazione automatica di celle

Postdi Anthony47 » 15/09/13 16:40

Secondo me cominciamo a "sconfusionarci"...
D22 (di foglio Ordine) richiede una lista di convalida, quindi un elenco di valori da calcolare altrove; non capisco perche' vuoi una formula da mettere in D22.

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

Re: [Excel] - Compilazione automatica di celle

Postdi Gattuccio0 » 15/09/13 17:03

Ciao Anthony,
pensavo che si potesse creare una formula da mettere come convalida (come la formula da cui si ottenevano il numero delle tazze).

La convalida che avevo fatto inizialmente aveva un elenco dinamico. Per fare questo elenco, purtroppo, avevo dovuto storpiare alcuni nomi per poter creare le liste: Moka chef = Moka_chef; Gift Box = Gift_Box e via dicendo.

Difatti avevi sollevato il problema che non risultava esistere la lista Home (e non ho ancora capito come mai non venisse selezionata dalla convalida).


ciao
Gattuccio0
Utente Senior
 
Post: 186
Iscritto il: 22/06/09 12:46

Re: [Excel] - Compilazione automatica di celle

Postdi Anthony47 » 15/09/13 17:33

Gattuccio ha scritto:pensavo che si potesse creare una formula da mettere come convalida (come la formula da cui si ottenevano il numero delle tazze)
Ma noi abbiamo usato le formule per creare una lista di convalida, non una formula che va direttamente nella cella dove va fatta la scelta.
Unica (o quasi) eccezione e' stata la formula inizialmente utilizzata per calcolare la lista di convalida del Codice, salvo poi ragionare che in realta' l' output non poteva che essere 1 solo codice e quindi si poteva semplificare la formula per estrarre questo unico valore, e quindi tanto valeva metterla direttamente in K22. Vedi viewtopic.php?f=26&t=98741&start=20#p576801, in particolare la tua frase
Gattuccio ha scritto:Non solo...al posto di inserire la formula in BD2, dovrebbe essere più giusto collocarla in K22 del foglio ordine in quanto non devo ottenere un menu a tendina bensì deve darmi un risultato univoco.


Gattuccio ha scritto:La convalida che avevo fatto inizialmente aveva un elenco dinamico
Usare "=INDIRETTO(C22)" non equivale a creare un elenco dinamico (vedi ad esempio
Anthony ha scritto:-definisci un intervallo dinamico, usando nel campo "Riferito a" dell' intervallo la formula

Codice: Seleziona tutto
Codice: Seleziona tutto
=SCARTO(Liste!$BA$2;0;0;CONTA.NUMERI(Liste!$BA$2:$BA$20);1)
in questo messaggio: viewtopic.php?f=26&t=98741#p576531

Al massimo si puo' parlare di elenco subordinato.

Proprio perche' usi "il valore di C22" come "nome di un intervallo" non hai potuto usare usare caratteri come lo spazio (e altri) che non sono ammessi nei nome.
Ma se crei l' elenco di convalida con le formule allora non userai piu' il valore variabile della scelta superiore come nome dell' elenco da adottare nella convalida subordinata, perche' userai un intervallo fisso il cui contenuto si ricalcola in funzione della/e scelta/e superiore/i (o un intervallo dinamico; dinamico perche' si allunga o si accorcia in funzione della lista ricalcolata; vedi uso di CONTA.NUMERI nell' esempio che ti ho quotato qualche riga fa).

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

Re: [Excel] - Compilazione automatica di celle

Postdi Gattuccio0 » 15/09/13 19:41

Mi sono espresso male...nel senso che non riesco a venirne fuori dalla formula che mi faccia la convalida di D22 del foglio Ordine.
Ho fatto questa funzione:
Codice: Seleziona tutto
=INDICE(Prodotti!$E$1:$E$2001;PICCOLO(SE(((SOSTITUISCI(Prodotti!D$1:D$2001;" ";"_")=ORDINE!C$22)*(SOSTITUISCI(Prodotti!D$1:D$2001;" ";"_")=ORDINE!C$22)*(CONTA.SE(BE$1:BE1;Prodotti!C$1:C$2001)=0));RIF.RIGA(Prodotti!A$1:A$2001);"");1))


ma mi errore.

Ho provato a fare un test per vedere se togliendo INDIRETTO e modificando i nomi dei prodotti e dei modelli cambiava qualcosa.
In D22 selezionando packaging mi da solamente Gift box...mentre per gli altri prodotti mi da errore...e non capisco dove sia l'errore (http://we.tl/cvck1FTwVu)
Gattuccio0
Utente Senior
 
Post: 186
Iscritto il: 22/06/09 12:46

Re: [Excel] - Compilazione automatica di celle

Postdi Gattuccio0 » 16/09/13 11:58

Non rispondere Anthony!!!!

Sono un minchia e me lo dico da solo e me ne vanto!

Sono riuscito: rileggendo tutto e facendo dei test. Nel Foglio ordine in D22, devo mettere la seguente funzione nella convalida:
=INDIRETTO(SOSTITUISCI($C$22;" ";""))

e tutto è perfetto!

Grazie per la pazienza
Gattuccio0
Utente Senior
 
Post: 186
Iscritto il: 22/06/09 12:46

Re: [Excel] - Compilazione automatica di celle

Postdi Gattuccio0 » 20/09/13 14:37

...niente da fare...ho cantato vittoria troppo presto.

Facendo tesoro di quanto postato...ho cercato di creare un file più "pulito" omettendo caratteri vietati.
Ma tra la prima versione e l'ultima ci sono tante (troppe) cose che non mi tornano.

Per praticità ho chiamato il primo 1 fase e 2 fase che metto qui: http://we.tl/tC4OH0hst7

Il primo file che avevo prodotto andava bene come formule nel foglio Liste (nominato 1fase).

Ho rifatto il file per sistemare i nomi delle liste, pulendo i nomi da tutti gli underscore in modo che la selezione nel foglio ORDINE risultasse migliore da vedere.

Così ho rifatto il file (2fase)...e qui sorgono dei problemi che non capisco in particolar modo per la funzione contenuta in BD2 foglio Liste...e qui sottolineo la mia ignoranza: stessi nomi, stesse colonne, stesso tutto...ma la formula da errore.

Le ho provate tutte. L'unico dubbio che mi è sorto è legato probabilmente alla sintassi dei risultati nel foglio ORDINE:

D22 =INDIRETTO(SOSTITUISCI($C$22;" ";""))
F22 =INDIRETTO(SOSTITUISCI($C$22;" ";""))
G22 =INDIRETTO(SOSTITUISCI($F$22;" ";"_"))

La mia domanda è la seguente: il fatto che in BD2 non mi torni la funzione corretta...dipende da queste tre celle?


Tra le altre cose avevo optato per la soluzione di Anthony "pulizia totale" viewtopic.php?f=26&t=98741#p576531 ma non sono riuscito a riprodurlo senza che risultasse un errore e quindi ho optato per convalide =INDIRETTO
Gattuccio0
Utente Senior
 
Post: 186
Iscritto il: 22/06/09 12:46

PrecedenteProssimo

Torna a Applicazioni Office Windows


Topic correlati a "[Excel] - Compilazione automatica di celle":


Chi c’è in linea

Visitano il forum: Nessuno e 34 ospiti