| | Post: 6 | Registrato il: 19/11/2018
| Città: TAVARNELLE VAL DI PESA | Età: 34 | Utente Junior | Microsoft Excel 2013 | | OFFLINE | |
|
26/11/2018 11:39 | |
Buongiorno a tutti,
Ho un foglio in cui in colonna C vado ad inserire determinati valori che voglio siano copiati in colonna A di un altro foglio.
Voglio che che la colonna A del foglio 2 si aggiorni automaticamente all'inserimento di nuovi valori in colonna C del primo foglio, ma non quando questi sono già stati inseriti (escludendo dunque i duplicati).
E' possibile fare ciò senza ricorrere ad una macro ma solo con una formula? |
|
| | Post: 4.022 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
26/11/2018 12:02 | |
Ciao
Credo che senza macro non sia possibile (ma io cone le formule vado poco d'accordo).
Allega un file di esempio con i dati ed il risultato voluto inserito a mano. [Modificato da alfrimpa 26/11/2018 12:03]
Alfredo |
| | Post: 6 | Registrato il: 19/11/2018
| Città: TAVARNELLE VAL DI PESA | Età: 34 | Utente Junior | Microsoft Excel 2013 | | OFFLINE | |
|
26/11/2018 12:50 | |
Ho allegato un file di esempio, spero che sia chiaro. |
| | Post: 2.039 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
26/11/2018 13:13 | |
ciao
foglio2, A2:
=SE.ERRORE(INDICE(Foglio1!$C$2:$C$7;CONFRONTA(0;CONTA.SE($A$1:A1; Foglio1!$C$2:$C$7); 0));"")
MATRICIALE
saluti
Domenico
Win 10 - Excel 2016 |
| | Post: 7 | Registrato il: 19/11/2018
| Città: TAVARNELLE VAL DI PESA | Età: 34 | Utente Junior | Microsoft Excel 2013 | | OFFLINE | |
|
26/11/2018 13:16 | |
Scusa l'ignoranza, che vuol dire matriciale? |
| | Post: 2.040 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
26/11/2018 13:17 | |
cerca su internet come inserire una formula matriciale......
saluti
Domenico
Win 10 - Excel 2016 |
| | Post: 8 | Registrato il: 19/11/2018
| Città: TAVARNELLE VAL DI PESA | Età: 34 | Utente Junior | Microsoft Excel 2013 | | OFFLINE | |
|
26/11/2018 13:24 | |
Ok, trovato! Il problema è che però mi da come risultato 0.
|
| | Post: 2.041 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
26/11/2018 13:25 | |
evidentemente sbagli qualcosa...
saluti
Domenico
Win 10 - Excel 2016 |
| | Post: 9 | Registrato il: 19/11/2018
| Città: TAVARNELLE VAL DI PESA | Età: 34 | Utente Junior | Microsoft Excel 2013 | | OFFLINE | |
|
26/11/2018 13:33 | |
Ok, ci sono riuscito, chiedo scusa se vi ho fatto impazzire.
Ora, ho copiato la tua formula, ovviamente adattandola con i miei riferimenti, in una colonna di una tabella, ma quando vado ad ordinare i valori della colonna dalla A alla Z, non succede niente, come mai? |
| | Post: 2.042 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
26/11/2018 16:09 | |
non puoi, a meno di ordinare l'elenco sorgente.
se ti serve l'elenco ordinato (magari potevi dirlo prima) devi usare un altro sistema:
=SE.ERRORE(INDICE(Foglio1!$C$2:$C$7;CONFRONTA(0;CONTA.SE(Foglio1!$C$2:$C$7;"<"&Foglio1!$C$2:$C$7)-SOMMA(CONTA.SE(Foglio1!$C$2:$C$7;"="&A$1:A1));0));"")
sempre matriciale
saluti [Modificato da dodo47 26/11/2018 16:16] Domenico
Win 10 - Excel 2016 |
| | Post: 10 | Registrato il: 19/11/2018
| Città: TAVARNELLE VAL DI PESA | Età: 34 | Utente Junior | Microsoft Excel 2013 | | OFFLINE | |
|
26/11/2018 16:13 | |
Perfetto, funziona con ordinamento dalla A alla Z, ma non dalla Z alla A. Si può fare anche in questo caso? |
| | Post: 11 | Registrato il: 19/11/2018
| Città: TAVARNELLE VAL DI PESA | Età: 34 | Utente Junior | Microsoft Excel 2013 | | OFFLINE | |
|
26/11/2018 16:16 | |
Come ho detto, questi dati mi vanno in una tabella ordinata, che ha anche altre colonne con altri valori, e dovrò poterli ordinare anche secondo le altre colonne...in questo caso la colonna A mi rimane sempre dalla A alla Z anche se cambio l'ordine delle altre colonne. |
| | Post: 2.043 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
26/11/2018 16:19 | |
"Perfetto, funziona con ordinamento dalla A alla Z, ma non dalla Z alla A. Si può fare anche in questo caso?"
al posto di "<" metti ">"...
Come ho detto, questi dati mi vanno in una tabella ordinata, che ha anche altre colonne con altri valori, e dovrò poterli ordinare anche secondo le altre colonne...in questo caso la colonna A mi rimane sempre dalla A alla Z anche se cambio l'ordine delle altre colonne.
ordina la tabella sorgente [Modificato da dodo47 26/11/2018 16:22] Domenico
Win 10 - Excel 2016 |
| | Post: 12 | Registrato il: 19/11/2018
| Città: TAVARNELLE VAL DI PESA | Età: 34 | Utente Junior | Microsoft Excel 2013 | | OFFLINE | |
|
26/11/2018 16:26 | |
Scusa, non mi sono spiegato bene.
La formula che mi hai dato, e che funziona, mi ordina i dati dalla A alla Z della colonna A di una tabella; tale tabella ha anche delle colonne B, C e D, e se vado ad ordinare, ad esempio dalla A alla Z la colonna C, i dati in colonna A non si riordinano di conseguenza, ma rimangono anch'essi dalla A alla Z, sballandomi a questo punto le varie righe. E' possibile fare qualcosa? |
| | Post: 2.044 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
26/11/2018 16:37 | |
ti ho già risposto:...non puoi...
edit: a meno di non ordinare la tabella sorgente o rendere la tabella del foglio2 a soli valori, quindi con una macro; cosa che mi sembra non sia di tuo interesse
[Modificato da dodo47 26/11/2018 16:48] Domenico
Win 10 - Excel 2016 |
| | Post: 13 | Registrato il: 19/11/2018
| Città: TAVARNELLE VAL DI PESA | Età: 34 | Utente Junior | Microsoft Excel 2013 | | OFFLINE | |
|
27/11/2018 11:32 | |
A quanto pare la macro sembra essere l'unica mia soluzione.
Potresti gentilmente darmi la macro appropriata? |
| | Post: 4.023 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
27/11/2018 12:40 | |
Prova con questa macro da inserire nel modulo del foglio1.
vb Private Sub Worksheet_Change(ByVal Target As Range)
Dim ur As Long
Dim conta As Integer
If Not Intersect(Target, Range("C:C")) Is Nothing Then
If Target.Rows.Count > 1 Or Target.Columns.Count > 1 Then Exit Sub
ur = Sheets("Foglio2").Cells(Rows.Count, 1).End(xlUp).Row
conta = WorksheetFunction.CountIf(Sheets("Foglio2").Range("A:A"), Target.Value)
If conta = 0 Then
Sheets("Foglio2").Cells(ur + 1, 1).Value = Target.Value
Else
Exit Sub
End If
End If
Worksheets("Foglio2").Sort.SortFields.Clear
Worksheets("Foglio2").Sort.SortFields.Add Key:=Range("A:A") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Foglio2").Sort
.SetRange Range("A:A")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
P.S. Dai due fogli elimina le strutture "Tabella"
Alfredo |
| | Post: 14 | Registrato il: 19/11/2018
| Città: TAVARNELLE VAL DI PESA | Età: 34 | Utente Junior | Microsoft Excel 2013 | | OFFLINE | |
|
27/11/2018 13:57 | |
Grazie
Ma come detto, ho bisogno delle strutture tabella in quanto per lavorarci dovrò poterli ordinare secondo vari criteri.
Non è proprio possibile? |
| | Post: 4.024 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
27/11/2018 14:37 | |
Senza eliminare le strutture "Tabella" prova con questa
vb Private Sub Worksheet_Change(ByVal Target As Range)
Dim ur As Long
Dim conta As Integer
If Not Intersect(Target, Range("C:C")) Is Nothing Then
If Target.Rows.Count > 1 Or Target.Columns.Count > 1 Then Exit Sub
ur = Sheets("Foglio2").Range("a1").End(xlDown).Row
conta = WorksheetFunction.CountIf(Sheets("Foglio2").Range("A:A"), Target.Value)
If conta = 0 Then
Sheets("Foglio2").Cells(ur + 1, 1).Value = Target.Value
Else
Exit Sub
End If
End If
Worksheets("Foglio2").Sort.SortFields.Clear
Worksheets("Foglio2").Sort.SortFields.Add Key:=Range("A:A") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Foglio2").Sort
.SetRange Range("A:A")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Alfredo |
|
|