Forum Discussion
Replace Index Column
- 3 years ago
= 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]) - 3 years ago
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