Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
Mederic
Post Patron
Post Patron

Replace Index Column

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

Transformation Data.jpg

2 ACCEPTED SOLUTIONS
wdx223_Daniel
Community Champion
Community Champion

wdx223_Daniel_0-1690423507462.png

= 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])

View solution in original post

slorin
Super User
Super User

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

View solution in original post

5 REPLIES 5
slorin
Super User
Super User

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

wdx223_Daniel
Community Champion
Community Champion

wdx223_Daniel_0-1690423507462.png

= 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

Transformation Data_2.jpg

 

edhans
Community Champion
Community Champion

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.



Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

DAX is for Analysis. Power Query is for Data Modeling


Proud to be a Super User!

MCSA: BI Reporting

Hello @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

 

 

 

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors