数式を作成みなさん、こんにちは、
式を使用して列X_9およびX_10を計算するにはどうすればよいですか?
X_9の場合:
一方、X_1 = X_1-> X_7(Row1)-X_8 = X_9
X_9-X_8
X_10の場合:
X_1 = X_1-> X_10(Row1)= X_9-X_8の間
X_9 + X_8
手伝ってくれてありがとうございます!
Re:数式を作成するこの種の質問は何度もされてきました。この問題を解決するのに役立つ情報を、過去のディスカッションで最初に検索しましたか?
式では、 While() 関数。あなたはおそらく使いたい if() 関数。も参照してください遅れ() 関数。
関数が文書化されています。参照してくださいヘルプ> JMPドキュメントライブラリ> JMPの使用 。数式と関数に特化した章があります。こちらもご覧くださいヘルプ>スクリプトインデックス 。このブラウザを表示するように設定します機能 (左上のプルダウンメニュー)を検索しますもしそして遅れ 。
Re:数式を作成する申し訳ありませんが、X_0とX_10に必要なものについての表記を解釈できません。書面で説明できますか?Re:数式を作成するこんにちは、
お返事ありがとうございます。
ご理解いただければ幸いです。
宜しくお願いします。
列X_1の行が変更されない限り
->列X_9 = X_7-X_8で計算する必要があります。
列X_1の行が変更されない限り
->列X_8が列X_10に追加されます
Re:数式を作成するこれが私の解決策です:X__9の式は
If( Row() == 1, sumX__8 = 0 );
If( :X__1 != Lag( :X__1 ),
sumX__8 = 0
);
sumX__8 = sumX__8 + :X__8;
:X__7 - sumX__8;
X__10式は
If( Row() == 1, theSum = 0 );
If( :X__1 != Lag( :X__1 ),
theSum = 0
);
theSum = theSum + :X__8;
theSum;
添付されているのは、数式が適用されたデータテーブルです。
Re:数式を作成するこんにちは、
これは本当に素晴らしいです!
どうもありがとうございました!
すぐに数式の使い方を理解できるようになってほしい
... 一人でできます。
楽しい夜/午後(?)
Re:数式を作成するこんにちは、txnelson、
数式を正しく理解できますか?
X_9の式
行= 1の場合、合計X_8 = 0
X_1が等しくない(?!=ラグ) X_1に、次にsumX_8 = 0
それ以外の場合はsumX_8 = sumX_8 + X_8
およびX_7-sumX_8
の式 X_10
Row = 1の場合、theSum = 0
X_1が等しくない(?!=遅れ) ) X_1
theSum = 0
それ以外の場合、theSum = TheSum + X_8
theSumに記入
これは正しく解釈されていますか?
日当たりの良い挨拶と健康を維持!
Re:数式を作成する


これは間違っています ....
こんにちは私は自分で数式を作ろうとしています
その下にある場合、どうすれば次を取得できますか?
ご協力いただきありがとうございます。
Re:数式を作成するX__9の解釈が正しくありません。 それがどのように機能するかを説明しようと思います。
解釈に役立つJMPの式について理解する必要がある3つの項目
- JMPは、データテーブルの各行の式を1行目から実行します。 そして、関数Row()は、JMPが現在ある行を返します
- 数式で必要な数のメモリ変数(つまりsumX__8)を作成できます。これらの変数は、数式で変更されるまで、行ごとに値を保持します。 これは式のキーの1つです。 この変数は、新しいX__1値が観察されるまで、行ごとにX__8の値を合計します。 その場合、sumX__8は0に戻されます。
- 特定の行の数式で最後に実行された計算の結果は、データテーブルの行に表示される値です。
したがって、列X__9の式の解釈は次のとおりです。
行1の場合
Row()が1の場合、メモリ変数sumX__8を0に設定します。 これはtrue Row()が1に等しいため、sumX__8は値0に初期化されます。メモリ変数sumX__8は、X__1のグループ内のX__8の累積合計を計算するために使用されます。
行1のX__1の値がX__1の以前の(ラグ)値と等しくない場合は、sumX__8の値を0に設定します。 X__1の以前の値がないため、計算は行われません。 sumX__8は、現在の値である0のままです。
次の行( sumX__8 = sumX__8 +:X__8; )を実行して、この行の累積合計を設定します。 これは、0であるsumX__8の現在の値を取得し、それに行0のX__8値を追加します。これは、結果が0の場合は0です。注:このコード行は、前のIF()関数の「その他」の計算ではありません。 このコード行は、すべての行に対して実行されます。
コードの次の行(:X__7-sumX __ *)は、X__7の計算行1の値を実行します。これは20であり、X__7の累積合計(sumX__8の値は0)を差し引き、20-0または20の値になります。 これは数式の行1の最後の計算であるため、この値はX__9の行1の値になります。
行2
Row()は1と等しくないため、sumX__8 = 0の結果コードは実行されません
行2のX__1の値は1000で、これはX__1の前の(ラグ)値に等しいため、結果コードは実行されません
sumX__8はこの行に対して計算され、結果はsumX__8の現在の値である0であり、結果は0である行2のX__8の値に0が追加されます。
X__9の行の値は、X__7の行2の値として計算されます。これは20であり、20の結果の値に対して0であるsumX__8の現在の値を減算します。
このプロセスは行から行へと続きます。 行9では、X__8の最初の0以外の値が表示されるため、1の値に対してsumX__8の値は0 + 1になります。 行10は、sumX__8などに1つ追加します。
次の重要な行は行20です。 この行の式の実行中、IF()関数「If(:X__1!= Lag(:X__1)」はtrueです。 :X__1は1001に等しく、X__1の以前の(ラグ)値は1000です。したがって、結果のsumX__8のコードは0に設定され、累積合計が最初から始まります。
解釈が次のように変更されます。
X_9の式
行= 1の場合、合計X_8 = 0
X_1が以前の値と等しくない X_1その後sumX_8 = 0
sumX_8 = sumX_8 + X_8
X__9はX_7-sumX_8と計算されます
X__10の式はX__9とほとんど同じなので、あなたの解釈を使用して、私の変更を加えて
の式 X_10
Row = 1の場合、theSum = 0
X_1が以前の値と等しくない X_1 theSum = 0
theSum = TheSum + X_8
X__10は、変数theSumの値を参照して設定されます。
Re:数式を作成する複雑な数式は、数式作成者を使用して作成するのがかなり困難です。 したがって、私の経験則として、複数行の計算を行う場合は、Formula Creator内のスクリプトエディターを使用します。
「数式なし」という文が含まれているボックスをダブルクリックした場合

単一の行を入力できる入力ボックスが表示されます....または数行

しかし、ボックスの右上隅にあるオブジェクトをクリックすると

スクリプトエディタが表示され、スクリプト全体を簡単に入力できます
