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

Estrarre parte di dati da elenco

Ultimo Aggiornamento: 18/03/2019 14:02
Post: 71
Registrato il: 01/09/2016
Città: BOMPORTO
Età: 53
Utente Junior
2021
OFFLINE
18/03/2019 10:34

Sto cercando una formula che mi estragga da un elenco solo i dati che soddisfino certe condizioni ma soprattutto che mi ignori i dati che non soddisfino tale condizioni.
(ho provato con indice e confronta, ma con risultato negativo :( )

Allego il file, spero sia chiaro (il file corretto è nella risposta successiva, scusate)
Grazie
[Modificato da Eso71 18/03/2019 11:35]
Post: 3.312
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
18/03/2019 11:08

Ma, le ore di permesso dell'Utente 4 di giovedì 31/01/2019 sono 2, per quale motivo nel tuo esempio le ore sono 6?

Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 71
Registrato il: 01/09/2016
Città: BOMPORTO
Età: 53
Utente Junior
2021
OFFLINE
18/03/2019 11:24

Hai ragione scusa, frutto di un calcolo che ho tolto, mi sono scordato di correggere.
Riallego
Post: 282
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Junior
2016
OFFLINE
18/03/2019 11:58

Buongiorno a tutti
Per le date

=SE.ERRORE(INDICE($B$7:$B$17;AGGREGA(15;6;RIF.RIGA($A$7:$A$17)/((ANNO($B$7:$B$17)=$N$6)*($A$7:$A$17=$I$6)*($D$7:$D$17="Ore di permesso"))-RIF.RIGA($A$7)+1;RIF.RIGA($A1)));"")

Per gli orari stessa formula cambia l INDICE da $B$7:$B$17 a $F$7:$F$17
Post: 3.313
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
18/03/2019 12:28

Buona giornata, Danilo;
perdonami se intervengo, ma temo che la Funzione "AGGREGA" non sia supportata dalla versione di Excen 2007, che è quella indicata da @Eso71.

Credo serva una Formula Matriciale con l'utilizzo della Funzione "PICCOLO"; o mi sbaglio?


A disposizione.

Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 4.140
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
OFFLINE
18/03/2019 12:44

Ciao a tutti

In attesa di una soluzione con formule propongo questa macro

vb
Sub EstraiDati()
Dim ur As Long
Dim lr As Long
Dim rng As Range
Dim cel As Range
ur = Cells(Rows.Count, "a").End(xlUp).Row
Set rng = Range("a7:a" & ur)
Range("I10:L100").ClearContents
For Each cel In rng
lr = Cells(Rows.Count, "i").End(xlUp).Row
    If cel.Value = Range("i6").Value And Year(cel.Offset(0, 1).Value) = Range("n6").Value And cel.Offset(0, 5).Value <> "" Then
        Cells(lr + 1, "i").Value = cel.Offset(0, 1).Value
        Cells(lr + 1, "l").Value = cel.Offset(0, 5).Value
    End If
Next cel
End Sub
[Modificato da alfrimpa 18/03/2019 13:24]

Alfredo
Post: 283
Registrato il: 15/01/2016
Città: ROMA
Età: 51
Utente Junior
2016
OFFLINE
18/03/2019 12:46

Buongiorno
Giuseppe non avevo visto la versione
Si si deve fare matriciale con piccolo
Post: 72
Registrato il: 01/09/2016
Città: BOMPORTO
Età: 53
Utente Junior
2021
OFFLINE
18/03/2019 14:00

Re:
DANILOFIORINI, 18/03/2019 11.58:

Buongiorno a tutti
Per le date

=SE.ERRORE(INDICE($B$7:$B$17;AGGREGA(15;6;RIF.RIGA($A$7:$A$17)/((ANNO($B$7:$B$17)=$N$6)*($A$7:$A$17=$I$6)*($D$7:$D$17="Ore di permesso"))-RIF.RIGA($A$7)+1;RIF.RIGA($A1)));"")

Per gli orari stessa formula cambia l INDICE da $B$7:$B$17 a $F$7:$F$17



Tanto di cappello, funziona! °_°

GRAZIE!!!!



Post: 73
Registrato il: 01/09/2016
Città: BOMPORTO
Età: 53
Utente Junior
2021
OFFLINE
18/03/2019 14:01

Re:
GiuseppeMN, 18/03/2019 12.28:

Buona giornata, Danilo;
perdonami se intervengo, ma temo che la Funzione "AGGREGA" non sia supportata dalla versione di Excen 2007, che è quella indicata da @Eso71.

Credo serva una Formula Matriciale con l'utilizzo della Funzione "PICCOLO"; o mi sbaglio?


A disposizione.

Giuseppe



Ciao Giuseppe
La versione Excel che ho è 2016 Business
Post: 74
Registrato il: 01/09/2016
Città: BOMPORTO
Età: 53
Utente Junior
2021
OFFLINE
18/03/2019 14:02

Re:
alfrimpa, 18/03/2019 12.44:

Ciao a tutti

In attesa di una soluzione con formule propongo questa macro

vb
Sub EstraiDati()
Dim ur As Long
Dim lr As Long
Dim rng As Range
Dim cel As Range
ur = Cells(Rows.Count, "a").End(xlUp).Row
Set rng = Range("a7:a" & ur)
Range("I10:L100").ClearContents
For Each cel In rng
lr = Cells(Rows.Count, "i").End(xlUp).Row
    If cel.Value = Range("i6").Value And Year(cel.Offset(0, 1).Value) = Range("n6").Value And cel.Offset(0, 5).Value <> "" Then
        Cells(lr + 1, "i").Value = cel.Offset(0, 1).Value
        Cells(lr + 1, "l").Value = cel.Offset(0, 5).Value
    End If
Next cel
End Sub




Grazie Alfredo, non sono molto afferrato con le macro... ma provo a testare anche la tua soluzione. Grazie davvero!
Vota:
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 08:10. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com