Re:基準値の位置に基づいて相対値を計算する方法は?Value1_rel数式列である可能性があります。
サンプルデータに基づいて式がどうなるかわかりません。
通常、私は平均に関連して期待します値1 - Param1 、または値1 - 0 、ただしどちらも例と一致しません。
基本値の位置に基づいて相対値を計算するにはどうすればよいですか?みなさん、こんにちは。
列の値のパーセンテージシェアを計算する必要があります値1列から選択した値の位置に基づく値1 。 例として、列の2番目の値に基づいてそれを実行したい場合値1 (位置2、または値2)、結果の列Value1_rel相対値は次のようになります。

さらに、アイテムごとにグループ化する必要のあるデータがさらに存在する可能性があり、アイテムごとに、他のすべての値のシェア(正規化された値または相対値は少し紛らわしい用語)を計算します。 どうやってやるの? 説明が不十分な場合は、ご容赦ください。お気軽にお問い合わせください。
ありがとう、よろしく
データ表スクリプティングRe:基準値の位置に基づいて相対値を計算する方法は?コメントありがとうございます。 はい、以前のバージョンの投稿の表にはゼロがありましたが、少し混乱するかもしれないと思ったので、各アイテムグループの2行目から値を取得して目的の値を計算する方が簡単かもしれないと思いました。 はい、Param1列の「ゼロ」は、行番号のみを決定することでした。Re:基準値の位置に基づいて相対値を計算する方法は?こんにちは、
この明らかに複雑な式(おそらく誰かがより簡単な式を提示するでしょう)を新しい列で使用できます。
Eval(
Eval Expr(
:Val[(:Group << get data table) << get rows where(
Col Cumulative Sum( 1, :Group ) == 2 & :Group == Expr( :Group[Row()] )
)] / :Val
)
)
少なくとも少しはこれを開梱する価値があるでしょう。
Eval(Eval Expr())構文は、式Expr(:Group [Row()])の評価を強制するために使用されます。 これがないと、各行に複数の値が返されます...グループごとに1つです。 Eval(Eval Expr())ラッパーとExpr()ラッパーを削除して、意味を確認してみてください。
比率で使用する値を決定するには、現在のグループ内の2番目の行を取得する必要があります。 この行を見つけるには、グループ(get rows where句の2番目の部分)で一致する必要があり、グループ内の2番目の値としても一致する必要があります。 これを行う簡単な方法は、:Groupでグループ化された1の列の累積合計を確認することです。 この列== 2の場合、あるグループの2番目の値があります。 これは複数の行で発生しますが、句の2番目の部分は、結果を現在の行のグループに一致するグループに制限します。 このように、テーブルをグループまたは値でソートする必要はありません。
累積合計等価の2をkに変更すると、2番目の代わりにグループ内のk番目の値を使用できます。
乾杯、
ブレイディ
