web-dev-qa-db-fra.com

Supprimer les valeurs en double en fonction de plusieurs colonnes avec une condition dans l'éditeur de requête Power BI

Je suis nouveau pour pouvoir bi et aurais besoin de votre aide pour résoudre le problème ci-dessous auquel je suis confronté.

Fondamentalement, je prends en considération trois colonnes comme ci-dessous:

enter image description here

Question:Je voudrais supprimer les valeurs en double du tableau ci-dessus en fonction des conditions " Une valeur égale pour" Temps "," ID "et la différence absolue dans" Temps passé "est inférieure ou égale à 1 " Comme vous pouvez le voir sur l'image. Les lignes en surbrillance entrent dans cette catégorie.

Je voudrais obtenir ces lignes ci-dessous supprimés en fonction de la condition.

enter image description here

Question: J'aimerais supprimer les valeurs en double du tableau ci-dessus en fonction des conditions " La même valeur pour" Temps "," ID "et la différence absolue dans" Temps passé "est inférieure ou égale à 1" Comme vous le pouvez voir dans l'image Les lignes en surbrillance appartiennent à cette catégorie.

Je voudrais obtenir ces lignes ci-dessous supprimés en fonction de la condition.

enter image description here

Je suis capable de le faire dans Excel en nous faisant une quatrième colonne avec des formules =IF(AND(A3=A2,B3=B2,ABS(F3-F2)<1),"problem",0) et en filtrant ensuite les lignes marquées comme probelm. S'il vous plaît aider!

Cordialement

Mahi

3
Mahi

Je parie que la suggestion de @Alexis Olson fonctionne très bien, mais puisque vous avez spécifiquement mentionné le Query Editor, voici comment je le ferais ici:


  1. Ayez vos données chargées comme ci-dessous, et acceptez les modifications effectuées sous Changed Type:

 enter image description here

Ne vous inquiétez pas des autres étapes du Query Settings. Nous y reviendrons éventuellement.

  1. Sélectionnez Add Column et cliquez sur Index Column pour obtenir ceci:

 enter image description here

  1. Sélectionnez Add Column, cliquez sur Custom Column et insérez cette petite formule dans la boîte de dialogue qui apparaît Table.AddColumn(#"Added Index", "Custom", each #"Added Index"[Time Spent]{[Index]}-#"Added Index"[Time Spent]{[Index]-1}):

 enter image description here

  1. Cliquez sur OK et assurez-vous que vous obtenez ceci:

 enter image description here

  1. Je pense que cette étape est un peu bizarre, mais vous devrez cliquer sur "Tableau" dans la colonne:

 enter image description here

  1. Vous obtiendrez un message d'erreur dans la première ligne, mais vous pourrez le supprimer en cliquant avec le bouton droit de la souris sur cette colonne et en cliquant sur Remove Errors:

 enter image description here

  1. Vous pouvez maintenant cliquer sur le menu déroulant dans la colonne personnalisée, sélectionner Filtre de numéro et Does Not Equal.

 enter image description here

  1. Et insérez 0 ou sélectionnez 0 dans le menu déroulant de la boîte de dialogue:

 enter image description here

  1. Ça y est, vos numéros requis devraient maintenant être filtrés:

 enter image description here

Notez toutefois que cette procédure a un coût, car vous perdez la première valeur en raison de la première étape de l'indexation. Si vous pouvez utiliser le reste, je peux voir si nous pouvons également régler ce dernier petit point.

1
vestland

Vous pouvez choisir une valeur représentative [Time Spent] dans chaque ensemble de lignes unique en prenant un maximum ou un minimum dans la liste des valeurs "en double". Voici la formule d'une telle colonne personnalisée, que j'appellerai [Min Time]:

= List.Min(
      Table.SelectRows(#"Previous Step",
          (C) => (C[Time] = [Time] and
                  C[ID] = [ID] and
                  Number.Abs(C[Time Spent] - [Time Spent]) < 1)
      )[Time Spent])

Une fois que vous avez cette colonne personnalisée, vous pouvez grouper par [Time], [ID] et [Min Time] pour cumuler les doublons, puis renommer la colonne [Min Time] en [Time Spent].

0
Alexis Olson