Eliminare nomi duplicati con stessa data

di Jekob_82 il
17 risposte

Ciao ragazzi si riesce nella query (tabella gialla ad eliminare nomi  duplicati con stessa data e ne consideri solo uno? Mi spiego meglio.... i duplicati per nome mi servono e sono già presenti. Però lo stesso nome non può avere due timbrate nella stessa data...... esempio le righe colorate di blu.

Allego file

https://www.swisstransfer.com/d/6ec423d1-d654-4c02-bdba-64cddd9edb87

17 Risposte

  • Io ci vedo due modi:

    1) Raggruppi 

    = Table.Group(#"Rinominate colonne", {"Dipendente", "Data", "Tipo"}, {{"OraMax", each List.Min([Ora]), type nullable text}})

    2) Rimuovi i duplicati

    = Table.Distinct(#"Rinominate colonne", {"Dipendente", "Data"})

    Sull'esempio che hai postato il risultato è il medesimo. Servirebbe testarli su un set di dati più ampio perché non so se la rimozione dei duplicati mantiene sempre il primo record oppure no. In teoria dovrebbe tenere quello e se sono in ordine di orario sei a posto

  • Non potevi caricare il foglio?

  • In che senso, scusa? Se intendi che avrei dovuto ricondividere il tuo file con la soluzione all'interno, finiamo in quanto espressamente vietato dal regolamento riguardo la "pappa pronta".

    Per applicare i miei suggerimenti e vedere se fanno al caso tuo, basta che apri l'editor di PowerQuery ed aggiungi le righe proposte nella finestra dell'editor avanzato.

    La seconda alternativa è:

    • andare, sempre tramite l'editor, nel tab "Trasforma" per eseguire il raggruppamento.
    • selezionare le due colonne "Dipendente" e "Data", click destro e selezionare "Rimuovi duplicati"
  • Si le ho aggiunte le righe ma messe in fondo mi dava "false"

    L'ultima striga di testo dice 

    in:

    Rinominate colonne se le righe le metto li da "False"

  • 21/12/2024 - Jekob_82 ha scritto:

    Si le ho aggiunte le righe ma messe in fondo mi dava "false"

    Devi aggiungerne solo una delle due. Entrambe sono ridondanti.

    Condividi il codice PQ che hai ottenuto, così diamo uno sguardo e vediamo cosa serve sistemare.

  • Let
       Origine = Excel.CurrentWorkbook(){[Name="Tabella1"]}[Content],
       #"Rimosse prime righe" = Table.Skip(Origine,3),
       #"Filtrate righe4" = Table.SelectRows(#"Rimosse prime righe", each not Text.Contains([Colonna1], "Data") and not Text.Contains([Colonna1], "Totale timbrature") and not Text.Contains([Colonna1], "pag") and not Text.Contains([Colonna1], "Dal") and not Text.Contains([Colonna1], "Stampa") and not Text.Contains([Colonna1], "timbratura annullata")),
       #"Suddividi colonna in base al delimitatore4" = Table.SplitColumn(#"Filtrate righe4", "Colonna1", Splitter.SplitTextByDelimiter("Azienda", QuoteStyle.Csv), {"Colonna1.1", "Colonna1.2"}),
       #"Ricopiato in basso1" = Table.FillDown(#"Suddividi colonna in base al delimitatore4",{"Colonna1.2"}),
       #"Filtrate righe7" = Table.SelectRows(#"Ricopiato in basso1", each ([Colonna1.1] <> "")),
       #"Riordinate colonne1" = Table.ReorderColumns(#"Filtrate righe7",{"Colonna1.2", "Colonna1.1"}),
       #"Suddividi colonna in base al delimitatore5" = Table.SplitColumn(#"Riordinate colonne1", "Colonna1.2", Splitter.SplitTextByDelimiter("Dipendente", QuoteStyle.None), {"Colonna1.2.1", "Colonna1.2.2"}),
       #"Rimosse colonne1" = Table.RemoveColumns(#"Suddividi colonna in base al delimitatore5",{"Colonna1.2.1"}),
       #"Suddividi colonna in base al delimitatore1" = Table.SplitColumn(#"Rimosse colonne1", "Colonna1.2.2", Splitter.SplitTextByDelimiter("Badge", QuoteStyle.Csv), {"Colonna1.2.2.1", "Colonna1.2.2.2"}),
       #"Rimosse colonne2" = Table.RemoveColumns(#"Suddividi colonna in base al delimitatore1",{"Colonna1.2.2.2"}),
       #"Dividi colonna per passaggio carattere" = Table.SplitColumn(#"Rimosse colonne2", "Colonna1.2.2.1", Splitter.SplitTextByCharacterTransition({"0".."9"}, (c) => not List.Contains({"0".."9"}, c)), {"Colonna1.2.2.1.1", "Colonna1.2.2.1.2"}),
       #"Rimosse colonne3" = Table.RemoveColumns(#"Dividi colonna per passaggio carattere",{"Colonna1.2.2.1.1"}),
       #"Testo troncato1" = Table.TransformColumns(#"Rimosse colonne3",{{"Colonna1.2.2.1.2", Text.Trim, type text}}),
       #"Suddividi colonna in base al delimitatore2" = Table.SplitColumn(#"Testo troncato1", "Colonna1.1", Splitter.SplitTextByDelimiter(" ", QuoteStyle.None), {"Colonna1.1.1", "Colonna1.1.2", "Colonna1.1.3"}),
       #"Rinominate colonne" = Table.RenameColumns(#"Suddividi colonna in base al delimitatore2",{{"Colonna1.2.2.1.2", "Dipendente"}, {"Colonna1.1.1", "Data"}, {"Colonna1.1.2", "Ora"}, {"Colonna1.1.3", "Tipo"}})
    in
       #"Rinominate colonne"

  • 21/12/2024 - Jekob_82 ha scritto:

    le ho aggiunte le righe

    E dove sono? Sbaglio io o non vedo nessuno dei due tentativi? 

    P.S. Usa il tag per il codice che resta più facile da leggere.

  • Le ho tolte perchè dava false

  • 21/12/2024 - Jekob_82 ha scritto:

    Le ho tolte

    Quindi non sappiamo cosa ci fosse di sbagliato. :(

    Hai fatto un tentativo anche tramite l'editor, come ti ho suggerito al post poco sopra?

    21/12/2024 - Sgrubak ha scritto:

    La seconda alternativa è:

    • andare, sempre tramite l'editor, nel tab "Trasforma" per eseguire il raggruppamento.
    • selezionare le due colonne "Dipendente" e "Data", click destro e selezionare "Rimuovi duplicati"

    Non funziona nemmeno così?

  • Non sono pratico....

  • 21/12/2024 - Sgrubak ha scritto:

    "Trasforma" per eseguire il raggruppamento.

    se lo sapessi fare in scioltezza pensi che avrei chiesto qui?

  • Ho fatto cosi, non so se ho fatto bene
    Allego 
    datemi un feedback

  • 22/12/2024 - Jekob_82 ha scritto:

    Ho fatto cosi

    Esatto! Hai optato per la Max che ti prende l'orario più alto che hai, ma in ogni caso te le rende univoche.

    21/12/2024 - Jekob_82 ha scritto:

    Non sono pratico....

    L'alternativa che ti suggerivo è

    • selezionare le due colonne "Dipendente" e "Data", click destro e selezionare "Rimuovi duplicati"

    dove letteralmente selezioni le due colonne (click sinistro sull'intestazione della prima colonna e poi SHIFT + click sinistro sull'intestazione della seconda colonna) e con il click di destro ti si apre la tendina. Da questa scegli l'opzione rimuovi duplicati. Dovrebbe mantenerti la riga con la prima coppia uguale delle due colonne selezionate.

  • Ok adesso però per verificare la correttezza dell'operazione ho bisogno di verificare nell'altro file dove ho i duplicati, se ha rimosso i record corretti, cioe ho bisogno di estrarre una lista dei nomi doppi e le date in cui risultano doppi

    ad esempio barbieri è doppio.

    Allego il primo file.

Devi accedere o registrarti per scrivere nel forum
17 risposte