値の設定ダイアログボックスは、ユーザが定義した式を1行をとり、この式によって生成された値を、1つあるいは複数のワークシート列(あるいは列の一部分)に出力します。列の計算式ボックスに入力される式は、演算子、列や行の参照、関数、ユーザ定義変数、定数等を組み込むことができます(詳細は下記)。値の設定ダイアログには、構文の色付け機能があります。
オプションのスクリプトタブ:
![]() | 値の設定ダイアログボックスにサンプルをロードするには、メニューから計算式:サンプルのロードを選択して表示されるリストから、ロードしたいものを選択します。 |
![]() | Origin 2018 SR0より、セルレベル(列レベルではなく)での計算を実行できます。式を使ってセル値を設定を参照してください。 |
Origin 2017 SR0からは、デフォルトでスプレッドシートセル表記 (SCN)が有効になっています。SCNが有効の時、シンプルSCNや2017より前のバージョンをお使いの場合は、列値の設定ボックスかF(x)=列ラベル行のいずれかで、新しい表記、または、旧表記の利用が可能です。「col」や「wcol」を使う場合、いくつかの制限があります。
Origin 2017より前のバージョンでファイル(OPJ、OGWなど)を開くと、ワークブックのSCNは無効となります。古いバージョンのファイルであっても、ウィンドウプロパティダイアログボックスから、SCNを有効にすることができます。SCNを有効にしない場合(スプレッドシートセル表記ボックスにチェックしていない場合)、ワークブック全体の列値の設定とF(x)=に古い列とセル表記を適用しなければいけません。
この新しいスプレッドシートセル表記は列の計算式ボックスとF(x)=ラベル行のみで利用可能です。実行前の処理スクリプトボックス内、またはOrigin内で記述するLabTalkスクリプトでは使用できません。
ワークシート内の列やセルの参照は次の方法で行います。
A; // 同じシートの列Aを参照 A1; // 同じシートの列Aの1行目を参照
以下の列の計算式サンプルを参照してください。
Origin2017より前のバージョンでは、別のシートとブックで使う範囲変数を値の設定の計算式で定義する必要がありました。上の表のようにスプレッドシートセル表記を使って、他のシートとブックのデータに直接参照することができます。これは、F(x)=ラベル行と「列値の設定」ボックスの両方でサポートされています。スプレッドシートセル表記が、目的のブックで有効になっている必要があります。
以下のシンタックスを使います。
1!A; // 同じブックの最初のシートにある列Aを参照 Sheet1!A; // 同じブックにあるシート[Sheet1]にあるるシートの列Aを参照 [Book1]1!A; // 別のブック[Book1]にある最初のシートのA列を参照 [Book2]Sheet1!B2; // 別のブック[Book2]にあるシート[Sheet1]の列Bの2番目の行を参照
以下の列の計算式サンプルを参照してください。
![]() | デフォルトでは、 |
式には以下の項目を含めることができます。範囲変数は、列の計算式で使用する前に、予め定義しておく(例:実行前の処理スクリプトで)必要があります。
データ参照 | 変数 | 演算子 | 関数 | 定数 |
---|---|---|---|---|
実行前の処理スクリプトパネルやスクリプトウィンドウ等で事前定義する必要があります。
![]() | 値の設定ダイアログのメニューコマンドである、wcol(1), Col(A), 関数, 変数は、データの参照、関数、変数、定数を列の計算式や実行前の処理スクリプトに挿入するのに役立ちます。メニューで選択された項目、はカーソル位置に挿入されます。Origin 2017 SR0では、これらのメニュー関数は従来の列と(スプレッドシートセル表記ではない)セル表記をサポートしています。 |
![]() | 実行前の処理スクリプト ボックスでスクリプトを実行する場合、制御条件またはloopスクリプトをロードする簡単な方法があります。実行前の処理スクリプト ボックスを右クリックし、メニューの下部にある条件/Loop を選択し、条件構造やループ構造を選択します。シンタックスは簡単なコメントでカーソルに追加されます。 |
値の設定ダイアログのコントロールについては、メニューオプションとダイアログコントロールを参照してください。
以下は、列の計算式ボックスで使用できる数式の簡単なサンプルです。
新しいスプレッドシートセル表記 | 従来の表記 | 説明 |
---|---|---|
B - C | col(B)-col(C) | col(B)[i]とcol(C)[i]の差を返します。 |
2!B - 3!C | N/A | シートインデックス2, col(B)[i]とシートインデックスcol(C)[i]の差を返します。 |
[Book2]Sheet1!A - [Book3]Sheet1!A | N/A | [Book2]Sheet1!A[i]と[Book3]Sheet1!A[i]の差を返します。 |
[Book2]Sheet1!A - [Book3]Sheet1!A2 | N/A | [Book2]Sheet1!A[i]と[Book3]Sheet1!の差を返します。 |
sin(pi*B) | sin(pi*col(B)) | col(B)[i]の正弦の値にpiを乗じた数を返します。 |
today() | 変更なし | 現在の日付を返します。 |
A$ + B$ | col(A)$ + col(B)$ | 内部で列Aと列Bを文字列に変換して結合します。 |
a > 0,A: Na() | col(A)>0? col(A): Na() | col(A)>0ならcol(A)に値を返し、そうでなければ欠損値を返します。 (LabTalk Utility FunctionNa()をご覧ください。) |
B-B1 | col(B)-col(B)[1] | 列Bの最初のポイントを列Bの全ての値から減算します。 |
A + StartTime | N/A | 名前付き範囲「StartTime」値を列Aの値に加算します。 |
total(A[i-1:i+3]) | total(col(A)[i-3:i+3]) | col(A)のi-3 から i+3 までのサブ範囲の合計を返します。i は行番号です。 |
sum(A:C, D:G, F) | N/A | 列AからC、DからG、およびFの値の行ごとの合計を返します。 |
(wcol(j)*2)-1 | 変更なし | j 番目の列(すべての選択された列)の各値に2を掛けて1を引いて、変換するために使用できます。 |
Note:列値の設定かF(x)=列ラベル行でiとjを使う場合、小文字を使います。大文字のIとJは、ワークシート列のショートネームに影響を与えてしまいます。 |
![]() | 「End」または「0」を使用して、列の最後のセルを定義します。 例 |
Origin 2022以降、列値の設定の列の数式ボックスおよびF(x)=ラベル行は、LabTalkでサポートされている関数と名前付き範囲のオートコンプリートをサポートします。
この機能を使用したくない場合は、列 および/または セルの数式に対して無効にすることができます/ F(x)=:
値の設定の計算式を実行前の処理スクリプトおよびPython関数コードとともに再利用する場合は、次のことができます。
簡単になった新しいシンタックスを使う場合、列Aと列Bの値を参照している列Cの列の式を定義して、列Aと列Bの間に列を挿入できます。列は式を参照し、列のショートネームが適用されます。ただし、この機能は以下の全ての場合利用できません。
列の式がこれらの状況に影響する場合、列の式は更新されません。
次の簡単なチュートリアルは、このダイアログを使ってガウス曲線のデータを生成する方法を示しています。
![]() | Originは値の設定ダイアログで列のサブ範囲を使用して関数の引数に設定できます。 例えば、列Aのサブ範囲i-3 から i+3 ( i は行インデックス)までの合計を計算するには、列の式編集ボックスに式を入力できます。 Total(A[i-3:i+3]) |
次の簡単なチュートリアルは、値の設定ダイアログを使って瞬時に複数の列に値を入力できるか示します。
range r1=[F1]F1!wcol(j); //"j" is the column index. range r2=[F2]F2!wcol(j);
![]() | 実行前の処理スクリプトで変数を定義する場合、変数名として小文字を使います。(例:「R1」ではなく「r1」を使う。)大文字を使うと以下のようなエラーが起こります。 列ショートネームの制限が有効です。R1がセルを参照し、変数として定義されません。「列値の設定」スクリプトのエラーのため、Book1_Gの処理ができません。 |
Python関数は、必要に応じて、列の数式ボックスまたは実行前の処理スクリプトタブから呼び出すことができます。これらの関数は、外部ファイルで定義すること、もしくは値の設定のPython関数タブで定義することができます。列値の設定ダイアログでこれらを定義する利点は、それらがプロジェクトとともに保存されることです。繰り返し使用するためのテンプレートを使用することもできます。
そのタブで、Python関数は...の形式で定義されます。
def ff(a)
...そして実行前の処理スクリプトタブまたは列の数式ボックスで...として呼び出されます。
py.ff(a)
値の設定ダイアログでPythonを利用する際の詳細は、列値の設定でPython関数を使用を参照してください。
![]() | F(x)=セルが(1)「py.」で始まる場合、および(2)外部ファイルで定義されたPython関数を呼び出す場合は、F(x)=セルを右クリックし、Pythonファイルを開くを選択して、コードビルダIDEでPython関数を開くことができます。 |
この簡単なチュートリアルでは、Python関数タブで関数を定義し、列の数式ボックスで呼び出す方法を示します。
import numpy as np from scipy import signal def smooth(y,npts, norder): """ F:Fii Perform Savitzky-Golay smoothing using scipy signal """ #npts: number of points for smoothing window #norder: polynomial order y=signal.savgol_filter( np.array(y), npts, norder ) return y
py.smooth(B,101,3)