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