SITO1 -- SITO2 -- Forum1 -- CercaGlobale -- Informativa su Cookie e Privacy


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5
Estrai riga con max di data in base a codice
#1
Ciao
vorrei estrarre una riga di dati in base a Codice/articolo con max di data
allego esempio di cosa vorrei fare
Grazie


Allegati
.ods   Prova Estrai max di data.ods (Dimensione: 13,58 KB / Download: 7)
combatti per migliorare, mai per distruggere. la vita è come uno specchio, sorridi e ti sorriderà
Cita messaggio
Grazie da:
#2
Con una macro io farei così:
1) ordina la tabella in base al codice crescente e data decrescente
2) elimina i duplicati in base al codice
Cita messaggio
Grazie da:
#3
Salve una soluzione con formule potrebbe essere: in K2 da tirare in basso, la formula

Codice:
=SE.ERRORE(INDICE($A$2:$A$5000;CONFRONTA(0;INDICE(CONTA.SE($K$1:K1;$A$2:$A$5000&"");0);0));"")
Per trovare i codici univoci. Poi in L2 da tirare a destra e in basso, la formula

Codice:
=INDICE(B$2:B$5000;GRANDE(SE($A$2:$A$5000=$K2;RIF.RIGA($B$2:$B$5000)-1);1))
è una formula matriciale e dopo averla inserita nella cella va confermata con la combinazione di tasti ctrl+maiuscolo+invio e non col solo invio.
Questo se usi libreoffice, invece se usi openoffice la prima formula diventa così

Codice:
=SE(val.errore(INDICE($A$2:$A$5000;CONFRONTA(0;INDICE(CONTA.SE($K$1:K1;$A$2:$A$5000&"");0);0)));"";INDICE($A$2:$A$5000;CONFRONTA(0;INDICE(CONTA.SE($K$1:K1;$A$2:$A$5000&"");0);0)))
e va confermata matriciale (ctrl+maiuscolo+invio)


Allegati
.ods   Prova Estrai max di data.ods (Dimensione: 25,8 KB / Download: 6)
mandi...Eugenio
Cita messaggio
Grazie da:
#4
Grazie EU66 e Patel

Patel la macro ordina riesco a farla con il "RegistraMacro" ma eliminare i duplicati mi è impossibile Mi arrendo

EU66 ho messo le formule .... ma non succede niente e mi da errore Piange
combatti per migliorare, mai per distruggere. la vita è come uno specchio, sorridi e ti sorriderà
Cita messaggio
Grazie da:
#5
io ho copiato la tabella nel foglio2, la macro è questa
Codice:
Sub ordina ' su 2 colonne
 
Dim oSortFields(1) As New com.sun.star.util.SortField
Dim oSortDesc(0) As New com.sun.star.beans.PropertyValue

oSheet = ThisComponent.Sheets(1)
c = oSheet.createCursor
c.gotoEndOfUsedArea(false)
LR = c.RangeAddress.EndRow + 1
oCellRange = oSheet.getCellRangeByName("A1:H" & LR)
oSortFields(0).Field = 0
oSortFields(0).SortAscending = True
oSortFields(1).Field = 1
oSortFields(1).SortAscending = FALSE
REM Setup the sort descriptor.
oSortDesc(0).Name = "SortFields"
oSortDesc(0).Value = oSortFields()
oCellRange.Sort(oSortDesc())
' -----------elimina duplicati
col=0  ' colonna A
RIGA=1
CellaPrec =oSheet.getCellByPosition(col,RIGA - 1).string
Cella = oSheet.getCellByPosition(col,RIGA).string

Do
 If StrComp(Cella, CellaPrec, 0) = 0 Then
    oSheet.Rows.removeByIndex(RIGA, 1)
    Cella = oSheet.getCellByPosition(col,RIGA).string  
   
  else
    RIGA = RIGA + 1
    CellaPrec = Cella
    Cella = oSheet.getCellByPosition(col,RIGA).string
    if Cella = "" then exit do      
  End If
Loop
 
End Sub
Cita messaggio
Grazie da:
#6
(02-11-2019,22:09 )Alessandro Moroni Ha scritto: Grazie EU66 e Patel

Patel la macro ordina riesco a farla con il "RegistraMacro"  ma eliminare i duplicati mi è impossibile  Mi arrendo

EU66 ho messo le formule .... ma non succede niente e mi da errore  Piange
Ma le hai confermate come matriciali? Cioè devi copiarle nella cella in modalità modifica, doppio click o F2, copiare le formule e confermarle con la combinazione di tasti ctrl+maiuscolo+invio e non col solo invio.
Un' altra cosa se il tuo file ha una struttura diversa da quello dell'esempio posta quello che probabilmente va modificato qualche riferimento nelle formule.
mandi...Eugenio
Cita messaggio
Grazie da:


Vai al forum:


Utenti che stanno guardando questa discussione: