Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Utilizzo formule per rimuovere duplicati, sommare dati e trasporli

Ultimo Aggiornamento: 29/01/2018 10:49
Post: 10
Registrato il: 29/12/2014
Età: 42
Utente Junior
2007
OFFLINE
25/01/2018 20:42

Ciao a tutti,
in "Foglio 2", nella colonna "F" ci sono dei modelli, nella colonna "L" ci sono delle quantità di ciascun modello, e nella colonna "O" ci sono i mesi in cui tali quantità vengono richieste. Ciò che vorrei ottenere è presente nel "Foglio 1": nella colonna "C" dovrebbero esserci i codici dei modelli presenti nella colonna F del "Foglio 2" ma senza duplicati (ogni modello deve comparire una volta sola), mentre nelle colonne "E","G","I" dovrebbero esserci, per ciascun mese, le quantità presenti nella colonna "L" del "Foglio 2".

Vorrei ottenere i risultati presenti nelle celle di colore giallo delle colonne "E","G","I" del "Foglio 1" senza utilizzare tabelle pivot o VBA, e senza utilizzare la funzione "rimuovi duplicati", ma utilizzando delle formule.
Come si può fare?
Grazie in anticipo
Post: 1.507
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
25/01/2018 20:59

Ciao

per trovare gli univoci


=SE.ERRORE(INDICE(Foglio2!$F$2:$F$15;CONFRONTA(0;INDICE(CONTA.SE(C$3:$C3;Foglio2!$F$2:$F$15&""););0));"")



per la quantità


=MATR.SOMMA.PRODOTTO((Foglio2!$F$2:$F$15=$C4)*(Foglio2!$O$2:$O$15=$E$2)*(Foglio2!$L$2:$L$15))



adegua i range al tuo bisogno
Post: 10
Registrato il: 29/12/2014
Età: 42
Utente Junior
2007
OFFLINE
27/01/2018 16:41

Re:
Ciao,
nel file in allegato ho modificato la colonna "D" del "Foglio 1".
Ciò che vorrei ottenere è visibile nelle celle di colore verde, ovvero per ogni modello presente nella colonna "C" del "Foglio 1", nella colonna "D" vorrei avere tutti i valori possibili del Modello 2 elencati nella colonna "G" del "Foglio 2". Una stessa cella conterrà quindi più valori di modello 2, ciascuno separato da uno spazio.
Come si può fare?

Post: 1.509
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
27/01/2018 19:29

ciao

con formula diventa una divina commedia

metti in D4 questa e tirala in giu


=ANNULLA.SPAZI(SE.ERRORE(INDICE(Foglio2!$G$2:$G$1500;AGGREGA(15;6;RIF.RIGA($1:$1000)/(Foglio2!$F$2:$F$1500=C4);1));"")&" "&SE.ERRORE(INDICE(Foglio2!$G$2:$G$1500;AGGREGA(15;6;RIF.RIGA($1:$1000)/(Foglio2!$F$2:$F$1500=C4);2));"")&" "&SE.ERRORE(INDICE(Foglio2!$G$2:$G$1500;AGGREGA(15;6;RIF.RIGA($1:$1000)/(Foglio2!$F$2:$F$1500=C4);3));"")&" "&SE.ERRORE(INDICE(Foglio2!$G$2:$G$1500;AGGREGA(15;6;RIF.RIGA($1:$1000)/(Foglio2!$F$2:$F$1500=C4);4));"")&" "&SE.ERRORE(INDICE(Foglio2!$G$2:$G$1500;AGGREGA(15;6;RIF.RIGA($1:$1000)/(Foglio2!$F$2:$F$1500=C4);5));"")&" "&SE.ERRORE(INDICE(Foglio2!$G$2:$G$1500;AGGREGA(15;6;RIF.RIGA($1:$1000)/(Foglio2!$F$2:$F$1500=C4);6));"")&" "&SE.ERRORE(INDICE(Foglio2!$G$2:$G$1500;AGGREGA(15;6;RIF.RIGA($1:$1000)/(Foglio2!$F$2:$F$1500=C4);7));"")&" "&SE.ERRORE(INDICE(Foglio2!$G$2:$G$1500;AGGREGA(15;6;RIF.RIGA($1:$1000)/(Foglio2!$F$2:$F$1500=C4);8));"")&" "&SE.ERRORE(INDICE(Foglio2!$G$2:$G$1500;AGGREGA(15;6;RIF.RIGA($1:$1000)/(Foglio2!$F$2:$F$1500=C4);9));"")&" "&SE.ERRORE(INDICE(Foglio2!$G$2:$G$1500;AGGREGA(15;6;RIF.RIGA($1:$1000)/(Foglio2!$F$2:$F$1500=C4);10));"")&" "&SE.ERRORE(INDICE(Foglio2!$G$2:$G$1500;AGGREGA(15;6;RIF.RIGA($1:$1000)/(Foglio2!$F$2:$F$1500=C4);11));"")&" "&SE.ERRORE(INDICE(Foglio2!$G$2:$G$1500;AGGREGA(15;6;RIF.RIGA($1:$1000)/(Foglio2!$F$2:$F$1500=C4);12));""))



e ti concatena solo le prime dodici occorrenze

ci vorrebbe il vba
Post: 11
Registrato il: 29/12/2014
Età: 42
Utente Junior
2007
OFFLINE
27/01/2018 19:42

Re:
Ciao, ho provato ad incollare la formula in D4 ma restituisce celle vuote.
Post: 1.510
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
27/01/2018 19:55

aggrega...........
il 2007 non l'ha come funzione
ha piccolo

provo a rifartela
Post: 1.511
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
27/01/2018 20:09

eccola

fino a 10 occorrenze


=ANNULLA.SPAZI(SE.ERRORE(INDICE(Foglio2!$G$2:$G$1500;PICCOLO(SE(Foglio2!$F$2:$F$1500=C4;RIF.RIGA($G$2:$G$1500)-RIF.RIGA(Foglio2!$G$2)+1);1));"")&" "&SE.ERRORE(INDICE(Foglio2!$G$2:$G$1500;PICCOLO(SE(Foglio2!$F$2:$F$1500=C4;RIF.RIGA($G$2:$G$1500)-RIF.RIGA(Foglio2!$G$2)+1);2));"")&" "&SE.ERRORE(INDICE(Foglio2!$G$2:$G$1500;PICCOLO(SE(Foglio2!$F$2:$F$1500=C4;RIF.RIGA($G$2:$G$1500)-RIF.RIGA(Foglio2!$G$2)+1);3));"")&" "&SE.ERRORE(INDICE(Foglio2!$G$2:$G$1500;PICCOLO(SE(Foglio2!$F$2:$F$1500=C4;RIF.RIGA($G$2:$G$1500)-RIF.RIGA(Foglio2!$G$2)+1);4));"")&" "&SE.ERRORE(INDICE(Foglio2!$G$2:$G$1500;PICCOLO(SE(Foglio2!$F$2:$F$1500=C4;RIF.RIGA($G$2:$G$1500)-RIF.RIGA(Foglio2!$G$2)+1);5));"")&" "&SE.ERRORE(INDICE(Foglio2!$G$2:$G$1500;PICCOLO(SE(Foglio2!$F$2:$F$1500=C4;RIF.RIGA($G$2:$G$1500)-RIF.RIGA(Foglio2!$G$2)+1);6));"")&" "&SE.ERRORE(INDICE(Foglio2!$G$2:$G$1500;PICCOLO(SE(Foglio2!$F$2:$F$1500=C4;RIF.RIGA($G$2:$G$1500)-RIF.RIGA(Foglio2!$G$2)+1);7));"")&" "&SE.ERRORE(INDICE(Foglio2!$G$2:$G$1500;PICCOLO(SE(Foglio2!$F$2:$F$1500=C4;RIF.RIGA($G$2:$G$1500)-RIF.RIGA(Foglio2!$G$2)+1);8));"")&" "&SE.ERRORE(INDICE(Foglio2!$G$2:$G$1500;PICCOLO(SE(Foglio2!$F$2:$F$1500=C4;RIF.RIGA($G$2:$G$1500)-RIF.RIGA(Foglio2!$G$2)+1);9));"")&" "&SE.ERRORE(INDICE(Foglio2!$G$2:$G$1500;PICCOLO(SE(Foglio2!$F$2:$F$1500=C4;RIF.RIGA($G$2:$G$1500)-RIF.RIGA(Foglio2!$G$2)+1);10));""))



devi confermarla
ctrl shift invio

è matriciale
Post: 12
Registrato il: 29/12/2014
Età: 42
Utente Junior
2007
OFFLINE
27/01/2018 20:49

Re:
Ottima soluzione, peccato solo che quando la formula peschi lo stesso valore dalla colonna G del "Foglio 2" lo ripeta (ad esempio 00066666 ripete due volte il 5).
Post: 1.512
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
27/01/2018 21:00

certo
lo vuoi per mese?
Post: 13
Registrato il: 29/12/2014
Età: 42
Utente Junior
2007
OFFLINE
27/01/2018 21:19

Re:
Preferirei che la formula riportasse nella colonna D i valori senza ripeterli.


Post: 1.515
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
28/01/2018 17:56

ciao

senza una tabella d'appoggio non ci riesco [SM=g27819]

e anche così pur raggiungendo il risultato non è che
mi piaccia molto, sono certo che un metodo meno complicato ci sia
comunque vedi il risultato.
Se hai poche righe lo puoi adattare altrimenti io passerei al vba
(non sono ferrato in merito)

dopo avere creato la tabella univoci in foglio due
la formula da usare è


=ANNULLA.SPAZI(INDIRETTO("foglio2!"&(INDIRIZZO(3;CONFRONTA(C4;Foglio2!$Q$2:$X$2;0)+16)))&" "&INDIRETTO("foglio2!"&(INDIRIZZO(4;CONFRONTA(C4;Foglio2!$Q$2:$X$2;0)+16)))&" "&INDIRETTO("foglio2!"&(INDIRIZZO(5;CONFRONTA(C4;Foglio2!$Q$2:$X$2;0)+16)))&" "&INDIRETTO("foglio2!"&(INDIRIZZO(6;CONFRONTA(C4;Foglio2!$Q$2:$X$2;0)+16)))&" "&INDIRETTO("foglio2!"&(INDIRIZZO(7;CONFRONTA(C4;Foglio2!$Q$2:$X$2;0)+16)))&" "&INDIRETTO("foglio2!"&(INDIRIZZO(8;CONFRONTA(C4;Foglio2!$Q$2:$X$2;0)+16)))&" "&INDIRETTO("foglio2!"&(INDIRIZZO(9;CONFRONTA(C4;Foglio2!$Q$2:$X$2;0)+16)))&" "&INDIRETTO("foglio2!"&(INDIRIZZO(10;CONFRONTA(C4;Foglio2!$Q$2:$X$2;0)+16)))&" "&INDIRETTO("foglio2!"&(INDIRIZZO(11;CONFRONTA(C4;Foglio2!$Q$2:$X$2;0)+16))))



per ampliarla
basta aggiungere questa stringa prima dell'ultima parentesi chiusa

&" "&INDIRETTO("foglio2!"&(INDIRIZZO(4;CONFRONTA(C4;Foglio2!$Q$2:$X$2;0)+16)))

e cambiare il numero in rosso
nel caso del file sarà 12

mi dispiace ma ad ora meglio non so fare
[Modificato da federico460 28/01/2018 18:03]
Post: 14
Registrato il: 29/12/2014
Età: 42
Utente Junior
2007
OFFLINE
28/01/2018 20:02

Re:
Ti ringrazio. Chissà, però, che non ci sia un metodo meno complicato.
Post: 2.635
Registrato il: 03/04/2013
Utente Veteran
Excel 2000 - 2013
OFFLINE
29/01/2018 06:52

Buona giornata, Nicckho;
se lo ritieni utile e opportuno, potresti provare con VBA.

Considera che ho previsto solo i mesi:
-    Gennaio
-    Febbraio
-    Marzo
Estendere il Range fino a Dicembre è piuttosto semplice ma bisogna avere un minimo di conoscenza di VBA e ... una buona dose di pazienza (cosa che io non ho! ).



A disposizione.

Buon Lavoro.

Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 1.517
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
29/01/2018 10:19

Ciao
Giuseppe

finalmente il VBA [SM=g27827]

mi hai fatto scrivere la divina commedia con le formule
speravo intervenissi [SM=x423028]
Post: 2.636
Registrato il: 03/04/2013
Utente Veteran
Excel 2000 - 2013
OFFLINE
29/01/2018 10:45

Buona giornata, Federico;
molto difficilmente intervengo in una Discussione nella quale ci sono altri Utenti impegnati con Procedure o Formule.

Questa volta visto che:

@Nicckho scrive:

Ti ringrazio. Chissà, però, che non ci sia un metodo meno complicato.



Ho ritenuto di Proporre un Codice VBA; poi vedremo come si sviluppa questa discussione magari VBA non è la soluzione più adeguata.





Alla prossima.

Buon Lavoro.

Giuseppe


Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 1.518
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
29/01/2018 10:49

ciao
e invece devi intervenire [SM=x423038]


Se hai poche righe lo puoi adattare altrimenti io passerei al vba



più risposte si hanno meglio è
vedere molte idee è meglio
ci fa capire le grandi capacità di Excel
sarà poi al richiedente scegliere
la più congeniale alle sue conoscenze

e amplia le conoscenze di chi risponde [SM=x423030]
[Modificato da federico460 29/01/2018 10:52]
Vota: 15MediaObject3,33316 2
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 23:51. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com