アプリ版:「スタンプのみでお礼する」機能のリリースについて

Offset関数の基準についてですが、例えば
シート1のA1セル内で、シート2のB2セルが指定されてあるとします。

このシート1のA1セルを基準とし、戻り値であるシート2のB2セルから見た行列指定をすることは出来るのでしょうか?

=offset(indirect(a1),1,1)のような形で試してみてもエラーとなってしまい、うまく行きません。

どなたかご教示いただけますでしょうか。

A 回答 (3件)

こんばんは



A1セルに「Sheet2!B2」の文字列が入力されているのであれば、ご提示の式で参照可能なはずです。

A1セルに「=Sheet2!B2」の参照式が設定されていて、その参照先を基準にしたいという意味であればそれは難しいです。
セルの値(=計算結果)は必ずしも単純参照の結果とは限りません。
SUM関数の結果やVLOOKUP関数等の結果である可能性もあるので、単純にその結果の値から参照先を関数で求めることはできません。

素直に参照先のアドレスを再掲して、
 =OFFSET(Sheet2!B2,1,1)
等と設定すれば、ご質問の結果を得ることは可能です。
いくつかの計算式を連動させたいということであるなら、参照先アドレスを「文字列で」どこかのセルに入力する方式にしておくのが簡単でしょう。


どうしてもセル指定でその参照先を取得したいのであれば、ユーザ定義関数を利用すれば不可能ではないでしょう。
ただし、シートをまたぐ参照関係は単純には取得できないので、セルに設定されている関数式を取得し、それを解析することになります。
単純な参照式が設定されているとは限りませんし、A1形式、R1C1形式の場合も含めると、それなりに面倒なユーザ定義関数になってしまいます。
(シートをまたがない参照関係であれば、比較的簡単に取得できますが・・)
    • good
    • 1

=OFFSET(INDIRECT("Sheet2!B2"), 1, 1)

    • good
    • 1

シートが異なれば、各々セル間の距離は定義できません。

    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A