INDEX関数について
INDEX関数の使用制限
INDEX関数は、指定した範囲(配列)の中から、指定した行番号と列番号が交差する位置にあるセルの値を取得します。
配列(必須)
セルの範囲を指定します。クラスター設定がされていないセルの値も取得できます。
配列定数、または、セル範囲形式 はi-Reporterでは使用できません。
印刷範囲設定外にあるセル、印刷範囲設定されていないシート上のセルも指定可能です。
指定先が非表示シートの場合、当該シートのセル値は配列データの取得対象外となります。必ず、表示されているシート内の範囲を指定してください。
行番号(必須)
配列の中にある、値を返す行を指定します。
クラスター設定されたセルを指定、または、1以上の正の整数を直接指定します。
小数が指定された場合は、小数点以下を切り捨てて計算を行います。
行番号に文字列が指定されていた場合、i-Repo Designer取り込み時にエラーになります。
列番号(必須)
配列の中にある、値を返す列を指定します。
クラスター設定されたセルを指定、または、1以上の正の整数を直接指定します。
小数が指定された場合は、小数点以下を切り捨てて計算を行います。
列番号に文字列が指定されていた場合、i-Repo Designer取り込み時にエラーになります。
引数として指定できないクラスター種別
配列
i-Reporterで「計算式に含めることが不可であるクラスター種別」は、INDEX関数の配列に指定することができません。
また、配列にクラスター種別設定がされていないセルが含まれる場合、i-Reporterではセル内に記載されている文字列を読み込みます。
行番号・列番号
行番号、列番号に指定できるクラスター種別は下記のみです。
数値選択
数値
計算式 ※計算結果が数値となる場合
トグル選択
単一選択 ※数値として扱う場合
バーコード ※数値として扱う場合
結合セルの扱い
i-Reporterでは、結合セル内で一番左上にあるセルに値が保持されています。 配列の中に結合セルが存在する場合は、各結合セルの左上セルが参照されるよう、行番号、列番号を指定してください。
【例1】
=INDEX(A1:D4,1,3) の場合、結果は「60」

【例2】
=INDEX(A1:D4,2,4) の場合、結果は「0」

引数として利用できるExcel関数
INDEX関数内の引数として利用できるExcel関数の条件は下記の通りです。
i-Reporterで対応しているExcel関数、または、四則演算
行番号/列番号に「クラスター設定されたセル」を指定した場合の注意点
行番号/列番号に「クラスター設定されたセル」を指定した場合、該当セルが未入力の状態=INDEX関数の行/列が未指定の状態となり、Excel上でスピル表示が発生します。 スピル表示がある帳票定義Excelファイルは、i-Repo Designer取り込み時にエラーが発生します。
回避方法
本エラーを回避する方法は下記です。
計算式を記述したセル周辺(スピル表示されたセル)に、スペース等の値を入力する
本来スピル表示される範囲に何らかの値が入力されている場合、スピル表示されません。 これは「スピルしない」状態ではなく「スピル表示がブロックされた」状態です。計算式には「#スピル!」のエラーが表示されますが、INDEX関数の行番号/列番号に正しい値が入力されることでエラーが解消され、正しい値が返されます。

引数となるセルにスペース等の値を入力する
行番号/列番号として指定しているセルに、スペース等、何らかの値を入力します。 これらのセルはクラスター設定がされているため、i-Repo Designer取り込み時にセルの入力値はPDF化されて背景画像となり、該当クラスターの値は空白になります。計算式には「#VALUE!」のエラーが表示されますが、INDEX関数の行番号/列番号に正しい値が入力されることでエラーが解消され、正しい値が返されます。

EXCEL定義出力時の注意点
Excel帳票定義上でスピル表示がされている、もしくは、計算結果がスピル表示に関連するエラーとなっている計算式を i-Repo Designer に取込み、その帳票定義を i-Repo Designer からEXCEL定義出力した場合、該当の計算式に「@」が付与されます。
i-Repo Designer 取り込み前

i-Repo Designer からEXCEL定義出力した後

INDEX関数内でスピル表示を回避する目的に限り、「@」が付与された計算式を i-Repo Designer に取り込むことが可能です。
最終更新
役に立ちましたか?
