If
概要
必要なOriginのバージョン: Origin 2019 SR0以降
MS Excelの If 関数と同様に、条件を評価し、条件がTrueかFalseかに応じて特定の値を返すために使用されます。値はテキストでも数値でも構いません。複数の条件で値の集合を比較するには、入れ込状のIF関数を使用します。
Notes:
- IF関数は、列値の設定ダイアログまたはセルの数式でのみ使用できます。一般的なLabTalkスクリプトでは使用できません。
- 一般的なプログラミングルールとして、ゼロ以外の値は"true"として扱われ、ゼロは"false"として扱われます。従って、もしある"条件付き"パラメータ(通常は比較の形をとる(例外あり))がcon>0と評価された場合、それは"true"として扱われます。そしてcon=0は"false"として扱われます。下のサンプル5を参照してください。
構文
double If(string con, double val_true[, double val_false])
string If(string con, string val_true$[, string val_false$])$
パラメータ
con
- 「true」または「false」として評価される条件式。上記の "Notes" を参照。
val_true
- 条件がTrueの場合の戻り値。数値またはテキストを指定できます。テキスト値の場合は、二重引用符("")で囲む必要があります。
val_false
- 条件がFalseの場合の戻り値。数値またはテキストを指定できます。テキスト値の場合は、二重引用符("")で囲む必要があります。
戻り値
比較の結果に応じて指定した値を返します。
サンプル
Ex1 - 2つの列の値を比較する
列AとBの値を行ごとに比較します。A > Bの場合は1を返し、それ以外の場合は0を返します。
- 新しいワークブックを作成します。列Aと列Bに乱数を入力します。
- 列Cを加し、F(x)=セルに次のように入力します。
if(A > B, 1, 0)
Ex2 -セルの数式で値を比較する
列Aのセルの値が列Aの平均を超えているかどうかをチェックし、それに応じてテキストを返します。
- 新しいワークブックを作成します。列Aに乱数を入力します。
- セルB1に、次の式を入力します。
- Enterを押して確定します。
- 列の残りの部分を埋めるには、セルB1の右下隅からドラッグします。
=if(A1 > mean(A), "Above Average", "Below Average")
Ex3 -入れ込状のIFで値を分類する
値の範囲に基づいて"Large"、"Small"、または"Median"を返すには、入れ込状のIFを使用します。
- 新しいワークブックを作成します。列Aに乱数を入力します。
- 列BのF(x)=セルに次のように入力します。
If(A > 0.5, "Large", If(A < 0.3, "Small", "Median"))
Ex4 -条件として関数Returnを使用
A列には3つのグループがあります。各グループの開始時にのみ差分を示す条件としてdiff(A,2)を使用します。注意:値を条件として使用する場合、ゼロ以外の値はすべてtrueとして扱われます。
- 新しいワークブックを作成します。
- 次の番号をコピーします。 1 1 1 2 2 2 0.5 0.5 0.5. 列AのセルA1を右クリックし、転置して貼り付けを選択します。
- 列BのF(x)=セルに次のように入力します。
- 列Cを追加します。列CのF(x)=セルで、次のように入力します。
if(diff(A, 2), diff(A, 2), ) // 差がある場合は差を表示、それ以外の場合は欠損値を入力
if(diff(A, 2), diff(A, 2), "") // 差がある場合は差を表示、それ以外の場合は空白のままにする
Ex5 - 2列のテキストを比較する
2つの文字列の列を比較し、一致ステータスを返します。列のショートネームの後に$を追加すると、その列は文字列として扱われます。
- 新しいワークブックを作成します。列AとBを選択し、右クリックして列値の一律設定:テキストと数値の任意のセットを選択します。繰り返すためのテキストに次のように入力します。 Alpha Beta Gamma.モード=ランダム配置データに設定し、OKをクリックします。
- 3番目の列を追加します。F(x)=セルに次のように入力します。
- 4番目の列を追加します。F(x)=セルに次のように入力します。
if(A$==B$, 1, 0) // AがBにマッチする場合は1、それ以外の場合は0
if(A$==B$, "Match", "") // ラベル一致文字列
Ex6 - OR条件のある電子メールドメインを検出
メールドメインに".org"、".gov"、".edu"が含まれている場合は"Non-Commercial"を返します。
- 新しいワークブックを作成します。
- 次のメールアドレスをコピーします。 jane@nonprofit.org john@example.com smith@university.edu ccc@usda.gov
- A1セルを右クリックし、転置して貼り付けます。
- 列BのF(x)=セルに次の式を入力します。
if(find(A$, ".org") != -1 || find(A$, ".gov") != -1|| find(A$, ".edu") != -1, "Non-Commercial", "")