Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
Hello all,
I thought I had found the solution to my previous thread here but finally it’s more complicated than expected
I open a new message with additional information
Thank you in advance for your help
Best regards
Solved! Go to Solution.
= Table.Combine(Table.Group(Source,"Index",{"n",each Table.Combine(Table.Group(_,"Index",{"n",each if [Index]{0}=null then _ else Table.AddIndexColumn(_,"NewIndex",1)})[n])},0,(x,y)=>Byte.From(y=null))[n])
Bonjour @Mederic , je crois que vous parlez français (j'espère que les autres contributeurs comprendront, mon anglais n'est pas suffisant).
Difficile de comprendre ce que vous voulez :
- pourquoi les cellules -58 et 58 sont elles en jaune ?
- quelle est la finalité de ces 1 et 2 dans l'index ?
vous voulez en "1" la valeur positive et en "2" celle qui est négative ? et donc les intervertir les deux 58 ?
- pourquoi vos deux dernières lignes sont positives ; 82 et 345. D'après les autres exemples elles devraient être négatives.
Pour reprendre un peu l'idée de @wdx223_Daniel
= Table.Combine(
Table.Group(
Source,
{"Index"},
{{"Data",
each Table.ReplaceValue(
Table.Sort(
_,
{{"Index", Order.Ascending},
{"Amount", Order.Descending}}),
each Number.Sign([Amount]),
each null,
(x,y,z)=> if y=1 then 1 else if y=-1 then 2 else null,
{"Index"}
)}},
GroupKind.Local,
(x,y)=> if y[Index] = null then 1 else 0)
[Data])
On regroupe les lignes avec GroupKindLocal
à l'intérieur des regroupements on tri par "Index" croissant et par "Amount" décroissant
je remplace les index par des 1 si "Amount" positif et par des 2 si négatif
Stéphane
Bonjour @Mederic , je crois que vous parlez français (j'espère que les autres contributeurs comprendront, mon anglais n'est pas suffisant).
Difficile de comprendre ce que vous voulez :
- pourquoi les cellules -58 et 58 sont elles en jaune ?
- quelle est la finalité de ces 1 et 2 dans l'index ?
vous voulez en "1" la valeur positive et en "2" celle qui est négative ? et donc les intervertir les deux 58 ?
- pourquoi vos deux dernières lignes sont positives ; 82 et 345. D'après les autres exemples elles devraient être négatives.
Pour reprendre un peu l'idée de @wdx223_Daniel
= Table.Combine(
Table.Group(
Source,
{"Index"},
{{"Data",
each Table.ReplaceValue(
Table.Sort(
_,
{{"Index", Order.Ascending},
{"Amount", Order.Descending}}),
each Number.Sign([Amount]),
each null,
(x,y,z)=> if y=1 then 1 else if y=-1 then 2 else null,
{"Index"}
)}},
GroupKind.Local,
(x,y)=> if y[Index] = null then 1 else 0)
[Data])
On regroupe les lignes avec GroupKindLocal
à l'intérieur des regroupements on tri par "Index" croissant et par "Amount" décroissant
je remplace les index par des 1 si "Amount" positif et par des 2 si négatif
Stéphane
= Table.Combine(Table.Group(Source,"Index",{"n",each Table.Combine(Table.Group(_,"Index",{"n",each if [Index]{0}=null then _ else Table.AddIndexColumn(_,"NewIndex",1)})[n])},0,(x,y)=>Byte.From(y=null))[n])
Bonjour @edhans , @wdx223_Daniel , @slorin ,
Désolé pour mon retour tardif et merci beaucoup pour vos réponses, vos 2 solutions fonctionnent très bien.
Je suis vraiment impressionné par ces 2 codes et vos compétences
Et en général par le potentiel de certains membres de ce forum.
- la solution de wdx223 ajoute une nouvelle colonne Index que je dois remettre au début et je dois supprimer l'ancienne colonne Index mais fonctionne très bien
- slorin's remplace la colonne Index d'origine et c'est exactement ce que nous attendons.
Pour répondre aux questions de slorin :
- pourquoi les cellules -58 et 58 sont-elles jaunes ?
=> c'était juste pour indiquer que je peux avoir des paires dans l'autre sens +/- mais aussi -/+.
Informations pas très pertinentes de ma part
- pourquoi vos deux dernières lignes sont-elles positives ; 82 et 345
=> En fait, c'est une erreur, j'ai oublié de mettre le 🙏
- A quoi servent ces 1 et 2 dans l'index ?
=> En réalité, j'ai une requête qui transforme plusieurs formulaires. Chaque formulaire est dans un onglet différent
La sortie consiste à combiner les données utiles des formulaires dans une requête avec un index (voir capture d'écran).
Mais la table avec l'index (1,2,3,4,....,1,2,3,4...) ne peut pas être exportée en comptabilité.
Les indices suivants sont acceptés : 1,2,1,2,1,2..... ou 1,1,1,1,......2,2,2,2,..... .
Je préfère the sorted one : 1,2,1,2,1,2.....
J'espère que c'est plus clair, mon anglais est loin d'être parfait 😕
Edit : j'ai accepté les 2 solutions et 🙏
Cordialement
How to get good help fast. Help us help you.
How To Ask A Technical Question If you Really Want An Answer
How to Get Your Question Answered Quickly - Give us a good and concise explanation
How to provide sample data in the Power BI Forum - Provide data in a table format per the link, or share an Excel/CSV file via OneDrive, Dropbox, etc.. Provide expected output using a screenshot of Excel or other image. Do not provide a screenshot of the source data. I cannot paste an image into Power BI tables.
DAX is for Analysis. Power Query is for Data Modeling
Proud to be a Super User!
MCSA: BI ReportingHello @edhans ,
Thank you for your reply,
Here is the input Data, hopefully this will help
Thanks in advance
Index Amount
1 45,5
2 72
3 132,63
4 -58
5 235,6
1 -45,5
2 -72
3 -132,63
4 58
5 -235,6
1 64
2 235
3 543
1 -64
2 -235
3 -543
1 82
2 345
1 82
2 345
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!
| User | Count |
|---|---|
| 19 | |
| 10 | |
| 9 | |
| 7 | |
| 7 |