Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

excel: formula per creare elenco

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

excel: formula per creare elenco

Postdi karug64 » 01/12/17 23:53

Salve a tutti.

Ho sul foglio1 in cui in colonna "B" senza un preciso ordine ho una stringa ripetuta ("Cod"). (Quindi posso avere Cod in B3, B54, B100, B10000, ecc)

In colonna "C" in corrispondenza di "Cod" ho il codice dell'articolo e in colonna "D" il costo.

E' possibile avere sul foglio2 delle formule (sicuramente matriciali) che mi riportino riga per riga solo i cod-codice-costo a partire dalla riga 3 ?

Grazie
Office 2010
karug64
Utente Senior
 
Post: 641
Iscritto il: 20/11/11 21:22

Sponsor
 

Re: excel: formula per creare elenco

Postdi Marius44 » 02/12/17 09:17

Ciao
Senza un tuo file e a tentoni suggerisco: ammesso che i tuoi dati siano in A1:A11 e nella celle D1:D11 metti questa formula MATRICIALE

Codice: Seleziona tutto
=SE.ERRORE(INDICE(A1:A11;PICCOLO(SE(CONFRONTA(A1:A11;A1:A11;0)=RIF.RIGA(INDIRETTO("1:"&RIGHE(A1:A11)));CONFRONTA(A1:A11;A1:A11;0);"");RIF.RIGA(INDIRETTO("1:"&RIGHE(A1:A11)))));"")


ottieni l'elenco UNIVOCO dei dati della colonna A.
Credo, però, che una formula simile per migliaia di righe appesantisca, e non di poco, il file.

Una cosa che avrei dovuto dire prima: non è che io con le formula ci vada a nozze ma questa l'avevo "in cassaforte".
Fai sapere. Ciao,
Mario
Marius44
Utente Senior
 
Post: 272
Iscritto il: 07/09/15 22:00

Re: excel: formula per creare elenco

Postdi karug64 » 02/12/17 10:47

Ciao. Allego il file di esempio

http://www.filedropper.com/cartel1_5

La formula proposta non mi da i risultati sperati ....

Grazie
Office 2010
karug64
Utente Senior
 
Post: 641
Iscritto il: 20/11/11 21:22

Re: excel: formula per creare elenco

Postdi Marius44 » 02/12/17 12:27

Ciao
Non avevo capito la "struttura" del foglio dove stanno i dati.
Con l'esempio che hai allegato io userei questa macro
Codice: Seleziona tutto
Option Explicit

Sub RiportoCodici()
Dim ur As Long, i As Long, a As Long
ur = Cells(Rows.Count, "B").End(xlUp).Row
a = 2
For i = 3 To ur
    If Cells(i, 2) = "Cod" Then
        a = a + 1
        Sheets(2).Cells(a, 2) = Cells(i, 2)
        Sheets(2).Cells(a, 3) = Cells(i, 3)
        Sheets(2).Cells(a, 4) = Cells(i, 4)
    End If
Next i
End Sub


Fai sapere. Ciao,
Mario
Marius44
Utente Senior
 
Post: 272
Iscritto il: 07/09/15 22:00

Re: excel: formula per creare elenco

Postdi Anthony47 » 02/12/17 13:02

In aggiunta all'efficace macro di Marius (vedi messaggio precedeente).

Si puo' fare anche con formule ma, l'ha gia' detto Marius, l'efficienza rischia di andare a pallino se hai centinaia o migliaia di righe da lavorare.
Io farei cosi':
In A2 di Foglio2
Codice: Seleziona tutto
=SE.ERRORE(PICCOLO(SE(Foglio1!$B$1:$B$1000="Cod";RIF.RIGA($B$1:$B$1000);"");RIF.RIGA(A1));"")
Da confermare con Contr-Maiusc-Enter e copiare poi verso il basso per un numero "sufficiente" di righe.
In B2
Codice: Seleziona tutto
=SE(A2<>"";INDICE(Foglio1!B$1:B$1000;$A2);"")

Da copiare poi in C2:D2; da copiare poi verso il basso

Oppure userei il filtro automatico, da associare poi all'evento Sheet_Activate di Foglio2; corrisponde a questa macro:
Codice: Seleziona tutto
Private Sub Worksheet_Activate()
Dim lastB As Long
'
With Sheets("Foglio1")
    lastB = .Cells(Rows.Count, "B").End(xlUp).Row
    .Range("$B$2").Resize(lastB, 1).AutoFilter Field:=1, Criteria1:="Cod"
    .Range("B2").Resize(lastB, 3).Copy Range("A2")
    .Range("$B$2").Resize(lastB, 1).AutoFilter Field:=1
End With
End Sub

Va messa nel modulo vba di Foglio2.
In questo modo tutte le volte che Foglio2 viene attivato l'elenco viene ricreato usando il filtro automatico su colonna B di Foglio1
NB: questo pero' significa che non si e' certi che il contenuto di Foglio2 sia corretto finche' non si apre Foglio2.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 15003
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: excel: formula per creare elenco

Postdi karug64 » 02/12/17 22:26

Grazie ad entrambi per entrambi i suggerimenti proposti.

Le soluzioni proposte da entrambi di Marius sono interessanti, ma, prevedendo del codice dietro al foglio, in questo frangente le ho escluse.
Pertanto, in questo caso, utilizzerò la soluzione a formule matriciali di Anthony.

Grazie !!
Office 2010
karug64
Utente Senior
 
Post: 641
Iscritto il: 20/11/11 21:22


Torna a Applicazioni Office Windows


Topic correlati a "excel: formula per creare elenco":


Chi c’è in linea

Visitano il forum: Nessuno e 34 ospiti