Alteryxで使用できる関数の「テスト関数」の使い方をご紹介します
テストカテゴリの関数は、Null値の確認や文字列かどうかの判断などデータに対する確認を行います。
条件式カテゴリの関数一覧
やりたいこと | 関数名 | 概要 |
---|---|---|
2つの文字列を比較 | CompareDictionary(a,b) | 2つの文字列を辞書順に比較します |
2つの数値を比較 | CompareDigits(a, b, nNumDigits) | 2つの数値を比較し、指定した桁数までの有効数字が同じか判断します |
2つの数値を比較 | CompareEpsilon(a, b, epsilon) | 2つの数値の浮動小数点数を比較します |
Nullまたは空白かテスト | IsEmpty(v) | v がNullまたは空白であるかテストします |
Nullかテスト | IsNull(v) | v がNullかテストします |
整数に変換できる値があるかテスト | IsInteger(v) | 整数に変換できる値があるかテストします |
数値かテスト | IsNumber(v) | v が数値かテストします |
空間オブジェクトかテスト | IsSpatialObj(v) | v が空間オブジェクトかテストします |
文字列かテスト | IsString(v) | v が文字列かテストします |
各関数の使い方とサンプル
CompareDictionary ・・・ 2つの文字列を辞書順に比較します
CompareDictionary(a, b)
文字列 a と b を辞書順に比較します。順番が a < b の場合は「-1」、a = bの場合は「0」、a > b の場合は「1」を返します。
Sample
CompareDigits ・・・ 2つの数値を比較し、指定した桁数までの有効数字が同じか判断します
CompareDigits(a, b, nNumDigits)
数値 a、b を比較し、nNumDigits で指定した桁までの有効数字が同じ場合は -1(True) 、同じではない場合は 0(False) を返します。戻り値はBool型となります。
例えば、1.7 == 1.7を1.7e50 == 1.7e50と比較する場合など、整数以外の2つの数値を比較する場合に使用できる関数です。
Sample
注意
NumDigits 引数は、 1 から 19 の間で必ず指定してください。整数以外を指定した場合は、最も近い整数に四捨五入されます。 (NumDigits 引数は0.5~19.499 までの入力が可能です。)
CompareEpsilon ・・・ 2つの数値の浮動小数点数を比較します
CompareEpsilon(a, b, epsilon)
数値 a、b の浮動小数点数を比較し、その差が epsilon で設定した数値内にある場合は -1 (True)、ない場合は 0 (False)を返します。戻り値はBool型となります。
Sample
IsEmpty ・・・ 値がNullまたは空白であるかテストします
IsEmpty(v)
指定した文字列 v が空白または Null である場合は -1(True)、それ以外の場合は 0(False) の値を返します。戻り値はBool型となります。
Sample
IsNull ・・・ 値がNullかテストします
IsNull(v)
指定した文字列 v が Null である場合は -1(True)、それ以外の場合は 0 (False)の値を返します。戻り値はBool型となります。
Sample
IsInteger ・・・ 整数に変換できる値があるかテストします
IsInteger(v)
指定した文字列 v に整数に変換できる値がある場合は -1(True)、それ以外の場合は 0 (False)の値を返します。v として null を指定した場合、0 が返ります。戻り値はBool型となります。
指定した v 列が文字列の場合も、整数に変換できる文字である場合は -1 (True) が返ります。
Sample
※元が文字列の場合に、数値であるかどうかの検証に利用可能です(ただし、数値以外の「.」(ドット)などは小数点として判断されず、あくまで0~9に合致するか、ということになりますので、ご注意ください)
IsNumber ・・・ 値が数値かテストします
IsNumber(v)
指定した値 v が数値型の場合は -1(True)、それ以外の場合は 0 (False)の値を返します。戻り値はBool型となります。
注意点として、値自体が数値でもデータ型が文字列型であれば文字列型として判定されるため、実質としてはフィールドの型自体の判定になっています。
Sample
上の例では、v2の値は数値ですが、文字列型のため、数値ではないとして判断されています。
IsSpatialObj ・・・ 値が空間オブジェクトかテストします
IsSpatialObj(v)
指定した列が空間オブジェクトの場合は -1(True)、それ以外の場合は 0 (False)の値を返します。戻り値はBool型となります。
Sample
IsString ・・・ 値が文字列かテストします
IsString(v)
指定した列が文字列の場合は -1(True)、それ以外の場合は 0 (False)の値を返します。戻り値はBool型となります。
注意点として、値自体が数値でもデータ型が文字列型であれば文字列型として判定されるため、実質としてはフィールドの型自体の判定になっています。
Sample
上の例のように、文字列型であるv1、v2のフィールドは文字列型として判定されています(v2の値自体は数値にも関わらず)。
サンプルワークフロー ダウンロード
FormulaFunction_Conditions fa-download
※Alteryx Designer 2019.1.6.58192時点の情報です