Excel Power Query - Rimuovere righe

Anonimo
2023-09-12T07:46:51+00:00

ciao,

ho la necessità di rimuovere (o filtrare) righe in base a dei valori presenti in altre celle.

In pratica ho questa situazione:

colonna 1 colonna 2 colonna 3

0001 A 1

0001 B 2

0002 B 2

0003 A 8

0003 B 2

se la colonna 1 ha 2 righe (più di 2 non è possibile) con lo stesso valore, sicuramente ha nella colonna b una riga con valore A e una riga con valore B, vorrei prendere il valore di colonna 3 riferito alla riga A di colonna 2.

Non so se sono riuscito a spiegarmi

Grazie,

Microsoft 365 e Office | Excel | Per il lavoro | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Eleuterio Tedeschi 18,750 Punti di reputazione Moderatore volontario
2023-09-12T09:26:47+00:00

ciao,

ho la necessità di rimuovere (o filtrare) righe in base a dei valori presenti in altre celle.

In pratica ho questa situazione:

colonna 1 colonna 2 colonna 3

0001 A 1

0001 B 2

0002 B 2

0003 A 8

0003 B 2

se la colonna 1 ha 2 righe (più di 2 non è possibile) con lo stesso valore, sicuramente ha nella colonna b una riga con valore A e una riga con valore B, vorrei prendere il valore di colonna 3 riferito alla riga A di colonna 2.

Non so se sono riuscito a spiegarmi

Grazie,

Con i tuoi dati in Tabella1

let
    Origine = Excel.CurrentWorkbook(){[Name="Tabella1"]}[Content],

    Tabella = Table.TransformColumnTypes(Origine,{{"colonna1", type text}, {"colonna2", type text}, {"colonna3", Int64.Type}}),
    TabellaA = Table.SelectRows(Tabella, each ([colonna2] = "A")),
    TabellaB = Table.SelectRows(Tabella, each [colonna2] <> "A"),
    Unisci = Table.NestedJoin(TabellaB, {"colonna1"}, TabellaA, {"colonna1"}, "TabellaB", JoinKind.LeftAnti),
    Pulisci = Table.RemoveColumns(Unisci,{"TabellaB"}),
    Combina = Table.Combine({Pulisci, TabellaA}),
    Ordina = Table.Sort(Combina,{{"colonna1", Order.Ascending}})
in
    Ordina

Ciao.

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

9 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2023-09-12T10:59:44+00:00

    Ciao e grazie a tutti,

    rispondo ad alcuni dubbi.

    faccio tutto da power query perché ho già altri passaggi e caricamento da sorgenti diverse.

    Sono arrivato al passaggio di avere quei dati e l'esigenza è di avere il valore di A solo se ci sono valori multipli nella prima colonna. Posso avere un valore singolo nella prima colonna ed avere il valore B nella seconda.

    Ma se ho un valore multiplo nella prima (che al massimo sarà uguale a 2), ho necessità di prendere solo il valore di A.

    Spero di essere stato più chiaro.

    Ora provo le vostre soluzioni e vi aggiorno.

    Grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2023-09-12T10:31:12+00:00

    Ciao Eleuterio,

    io ho capito che solo in caso di valori multipli voglia il valore in corrispondenza di A, ma ad esempio per il codice 0002 ho recuperato quello di B.

    Immagine

    Aspetto un chiarimento, magari mi sono complicato inutilmente la vita e basta il semplice filtro per A.

    Considerata la scarna descrizione dei requisiti fornita dall'OP, sebbene vi sia ampio spazio per qualche dubbio, la tua interpretazione potrebbe certamente essere quella corretta. Sicuramente qualche chiarimento da parte di Andea sarebbe gradito!

    vista l'origine dei dati forse è meglio che la prima colonna sia di tipo testo:{"colonna 1", type text}

    Certamente, ma proprio a causa dei miei dubbi ho rifuggito ogni tentativo di affinare il codice M finché questi non fossero stati chiariti.

    edit

    Norman, mi sono accorto di un piccolo refuso sul tuo post: la tabella si crea con CTRL+T

    Grazie, questo era un rifuso che ora ho corretto. 😊

    ===

    Regards,

    Norman

    Immagine

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Eleuterio Tedeschi 18,750 Punti di reputazione Moderatore volontario
    2023-09-12T10:03:20+00:00

    Ciao Norman,

    io ho capito che solo in caso di valori multipli voglia il valore in corrispondenza di A, ma ad esempio per il codice 0002 ho recuperato quello di B.

    Immagine

    Aspetto un chiarimento, magari mi sono complicato inutilmente la vita e basta il semplice filtro per A.

    Un caro saluto.

    P.S.

    vista l'origine dei dati forse è meglio che la prima colonna sia di tipo testo:

    {"colonna 1", type text}
    

    edit

    Norman, mi sono accorto di un piccolo refuso sul tuo post: la tabella si crea con CTRL+T

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2023-09-12T09:27:00+00:00

    Ciao Andrea,

    ho la necessità di rimuovere (o filtrare) righe in base a dei valori presenti in altre celle.

    In pratica ho questa situazione:

    colonna 1 colonna 2 colonna 3

    0001 A 1

    0001 B 2

    0002 B 2

    0003 A 8

    0003 B 2

    se la colonna 1 ha 2 righe (più di 2 non è possibile) con lo stesso valore, sicuramente ha nella colonna b una riga con valore A e una riga con valore B, vorrei prendere il valore di colonna 3 riferito alla riga A di colonna 2.

    Non so se sono riuscito a spiegarmi

    Considerata la tua esigenza di sfruttare Power query, prova quanto segue:

    • Seleziona la tabella dei dati
    • Ctrl+T per convertire i dati in una tabella strutturata di Excel
    • Dati
    • Da tabella/Intervallo
    • Home
    • Editore avanzato
    • Nella finestra dell'editor risultante, sostituisci qualsiasi testo con: let
        Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], 
      
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"colonna 1", Int64.Type}, {"colonna 2", type text}, {"colonna 3", Int64.Type}}), 
      
        #"Filtered Rows" = Table.SelectRows(#"Changed Type", each ([colonna 2] = "A")) 
      
      in
        #"Filtered Rows"
      
    • Fatto
    • Home
    • Chiudi e carica

    Questa procedura creerà automaticamente un nuovo foglio con una tabella che mostra solo le righe A e questa tabella potrà essere aggiornata, automaticamente o manualmente, quando cambiano i dati di origine.

    Ovviamente un risultato simile potrebbe essere ottenuto, senza l'utilizzo di Power query, filtrando i dati sorgente. Per questo motivo sospetto che possano esserci ulteriori requisiti non ancora chiari.

    ===

    Regards,

    Norman

    Immagine

    La risposta è stata utile?

    0 commenti Nessun commento