テーブルまたはスライス内の一致する行の列値を返します。複数の行が一致する場合でも、返される列値は 1 つのみです。
使用例
LOOKUP("ボブズバーガー", "レストラン", "名前", "電話番号")
は、レストラン
データセットの行の中から、名前
列の値がボブズバーガー
と一致する行の電話番号
列の値を返します。ANY(SELECT(レストラン[電話番号], ([名前] = "ボブズバーガー")))
と同等です。関連情報: ANY()
、SELECT()
LOOKUP([_THISROW], "マネージャー", "場所", "名前")
は、場所の行から、現在の行で特定されている場所が割り当てられているマネージャーの名前を取得します。ANY(SELECT(マネージャー[名前], ([場所] = [_THISROW])))
と同等です。
LOOKUP([_THISROW].[注文 ID], "注文", "注文 ID", "注文日")
は、注文詳細の行の親注文から注文日を取得します。ANY(SELECT(注文[注文日], ([注文 ID] = [_THISROW].[注文 ID])))
、[注文 ID].[注文日]
と同等です。
構文
LOOKUP(値, データセット, 列, 戻り値の列)
値
- 指定されたデータセットの指定された列で照合する値(=
演算子の場合と同様)。この値は、データセット列との比較に適した型でなければなりません。値
が式の場合は、ルックアップ データセット(データセット
)の観点から評価されます。現在のコンテキストの列を参照するには、_THISROW
を逆参照します。関連情報:SELECT()
データセット
- 検索対象のテーブルまたはスライス(「データセット」)の名前を、リテラル テキスト値で指定します。予約済みの単語との混同を避けるために引用符で囲むこともできます。この引数に式を指定することはできません。列
- 検索対象の列の名前をリテラル テキスト値で指定します。予約済みの単語との混同を避けるために引用符で囲むこともできます。この引数に式を指定することはできません。戻り値の列
- 返す値が含まれる列の名前をリテラル テキスト値で指定します。予約済みの単語との混同を避けるために引用符で囲むこともできます。この引数に式を指定することはできません。
注意事項
データセット名と列名の引数(データセット
、列
、戻り値の列
)は単純なテキスト値にする必要があります。列参照や複雑な式にすることはできません。値が AppSheet 自体で使用される内部名と一致する場合は、混同しないように引用符で囲んでください。たとえば、Date
という列名の場合、引用符で囲まないとエラーが発生します。
トラブルシューティング
LOOKUP()
は、実質的には SELECT()
関数のラッパーです。SELECT()
と同様に、列参照は、式が実行されるデータセットの観点からではなく、検索対象のデータセットの観点から解釈されます。
たとえば、注文詳細の行から親注文の注文日を取得するとします。
LOOKUP([注文 ID], "注文", "注文 ID", "注文日")
この場合、結果は生成されますが、誤っている可能性があります。同等の SELECT()
式を見てみましょう。
ANY(SELECT(注文[注文日], ([注文 ID] = [注文 ID])))
この比較では、注文の注文 ID
がそれ自体と照合されるため、常に TRUE
となります。したがって、SELECT()
は意図された注文詳細の行の親だけでなく、すべての注文を照合します。
LOOKUP()
を使用している行の列値を参照するには、_THISROW
を逆参照します。次に例を示します。
LOOKUP([_THISROW].[注文 ID], "注文", "注文 ID", "注文日")
同等の SELECT()
式は次のとおりです。
ANY(SELECT(注文[注文日], ([_THISROW].[注文 ID] = [注文 ID])))
関連情報
LOOKUP 関数の機能例