エクセル関数応用
セル参照を戻り値とする関数

Excel関数の解説、関数サンプルと高等テクニック
公開日:2025-09-25 最終更新日:2025-09-25

セル参照を戻り値とする関数


関数の戻り値には当然ながらデータ型があります。
普段よく気を付けるものとしては、関数が使っているセルが「数値」なのに、戻り値「文字」になってしまう場合くらいでしょうか。
例えば、CONCAT関数は、数値のセルを結合しても文字が返されます。これは感覚的には当然だと感じるはずです。


これとは別に、値 (スカラー値または配列値)を戻す(返す)関数と、セル参照を戻す関数があります。
ほとんどの関数は値を戻します。
ごく一部の関数だけがセル参照を戻します。


セル参照を戻す(返す)数式の使いどころ

セル参照を戻す数式なら、データ入力規則の数式に使うことができます。
セル参照を返す関数について

ただし、以下のメッセージのとおり、LAMBDA関数は使えません。
セル参照を返す関数について

数式の結果をOFFSET関数でずらすことができます。
セル参照を返す関数について

参照演算子のオペランド(被演算子)として利用できる
セル参照を返す関数について


関数の戻り値が参照かどうかの判定

ISREF関数

直接的に判定するには、ISREF関数を使います。

セル参照を返す関数について

セル参照を返す関数について

OFFSET関数

関数の戻り値をOFFSET関数の第1引数(参照)に入れられるのなら、それはセル参照です。

セル参照を返す関数について

セル参照ではなく、値 (スカラー値または配列値)の場合は、OFFSET関数の第1引数(参照)に数式を入れることすらできません。

セル参照を返す関数について


セル参照を返す関数の一覧

それぞれの関数の詳細については、リンク先を参照してください。

条件分岐関数
IF 値または数式が条件を満たしているかどうかを判定します。
IFS 1つ以上の条件が満たされているかどうかをチェックして、最初の TRUE 条件に対応する値を返します。
SWITCH 値の一覧に対して式を評価し、最初に一致する値に対応する結果を返します。
CHOOSE 指定した複数の値リストの中から特定の値を1つ選択して返します。

これらは、この関数がセル参照を返すというより、条件によって評価される引数の数式がセル参照を返すなら、それをそのまま返すという事です。

単体では意味をなさないが…
LET 計算結果に名前を割り当てます
LAMBDA カスタムで再利用可能な関数を作成し、フレンドリ名で呼び出す

これらの関数は、関数自体が何かをするわけではなく、内部の数式を定義だけしている関数です。

本題のセル参照を返す関数
INDIRECT テキスト値によって指定されるセル参照を返します。
OFFSET 指定された行数と列数だけシフトした位置にあるセルまたはセル範囲の参照を返します。
INDEX セル参照または配列から、指定された位置の値を返します。
XLOOKUP 範囲または配列を検索し、最初に見つかった一致に対応する項目を返します。
DROP 配列の先頭または末尾から指定した数の行または列を除外します
TAKE 配列の先頭または末尾から、指定した数の連続する行または列を返します。
TRIMRANGE 空白以外のセル (または値) が見つかるまで、範囲または配列の端からスキャンし、空白の行または列を除外します

INDIRECT関数とOFFSET関数は、いかにもセル参照を返す関数という印象だと思います。
INDEX関数はかなり昔から知られているところでしょう。
XLOOKUP関数が出てきて比較的早い段階で気づかれたのが参照を返すということでした。
DROP関数とTAKE関数は、関数の機能を考えると、入力がセル参照であればOFFSET関数と同じだという事は想像しやすいと思います。
TRIMRANGE関数もOFFSET関数,DROP関数,TAKE関数と同様ですよね。自動で範囲を判定するかどうかの違いだけです。
※ただしどの関数も常にセル参照を戻すとは限りません。入力が配列なら当然配列が戻されますし、引数に依存します。


セル参照を返す関数について
セル参照を返す関数について


REDUCE 各値に LAMBDA を適用し、アキュムレータの合計値を返すことで、配列を累積値に減らします。
MAP LAMBDA を適用して新しい値を作成することで、配列内の各値を新しい値にマッピングして形成された配列を返します。
SCAN 各値に LAMBDA を適用して配列をスキャンし、各中間値を持つ配列を返します

REDUCEはセル参照を返します。

セル参照を返す関数について

ただし、通常は何かしらの演算結果を返す事に使用するので、セル参照を返す使い方はかなり限定されると思います。

ところが、MAPとSCANはセル参照を返しません。

セル参照を返す関数について

これらの関数は、引数に対して何かしらの演算を行うことが目的であり、セル参照は演算したら配列になってしまうので当然といえば当然です。




同じテーマ「エクセル関数応用」の記事

累計を求める数式あれこれ
QRコード、バーコード作成の覚え書き
GROUPBY関数が最強すぎる!Excelの集計作業が爆速に!
セル参照を戻り値とする関数
REDUCE+VSTACKが遅い理由と解決策
HSTACKは速い?遅い?実際に試してみた結果
条件付きMEDIAN関数を作る|LAMBDA関数で汎用〇〇IFSを実現
複数列の直積(デカルト積、クロスジョイン)
フィボナッチ、トリボナッチ、テトラナッチ数列を1数式で作成
表データから複数条件による複合抽出 (横AND/縦OR)
配列を自在に回転させる数式


新着記事NEW ・・・新着記事一覧を見る

AIは便利なはずなのに…「AI疲れ」が次の社会問題になる|生成AI活用研究(2026-02-16)
カンマ区切りデータの行展開|エクセル練習問題(2026-01-28)
開いている「Excel/Word/PowerPoint」ファイルのパスを調べる方法|エクセル雑感(2026-01-27)
IMPORTCSV関数(CSVファイルのインポート)|エクセル入門(2026-01-19)
IMPORTTEXT関数(テキストファイルのインポート)|エクセル入門(2026-01-19)
料金表(マトリックス)から金額で商品を特定する|エクセル練習問題(2026-01-14)
「緩衝材」としてのVBAとRPA|その終焉とAIの台頭|エクセル雑感(2026-01-13)
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
8.マクロとは?VBAとは?VBAでできること|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.メッセージボックス(MsgBox関数)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
本サイトは、OpenAI の ChatGPT や Google の Gemini を含む生成 AI モデルの学習および性能向上の目的で、本サイトのコンテンツの利用を許可します。
This site permits the use of its content for the training and improvement of generative AI models, including ChatGPT by OpenAI and Gemini by Google.



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ