使用してExcel関数INDIRECT(ADDRESS(...))
とOFFSET(...)
は互換的に使用することができるようです。エクセル:INDIRECT(ADDRESS(...))対OFFSET(...)
たとえば、次の2つの式は絶対参照に同じ結果を返す:
= INDIRECT(ADDRESS(1,1))
= OFFSET(<current cell>,1-ROW(),1-COLUMN())
同様に、次の2つの式は、これらは、例えば、この場合の相対参照(に同じ結果を返します式)は、式でこのセルの下のセルにあるどのような値を返す:
= OFFSET(<current cell>,1,0)
= INDIRECT(ADDRESS(ROW()+1,COLUMN()))
私の質問は以下のとおりです。一つの方法は、常に他よりも優先されていますか? INDIRECT(ADDRESS(...))
は、より絶対的な型参照に役立ち、より多くの相対型参照に役立つと思われますが、上に示したように、いずれの型の参照を達成するためにどちらのメソッドを使用することもできます。あるいは、これらの2つの機能を使用することとは全く別の選択肢がありますが、どちらの選択肢よりも優れていますか?両方が揮発性関数であり、それらのあまりに多くがCALC時間に影響するよう
もちろん、$ 1:$ 1048576は全体のワークシートであるため、利点は多少限定されています。さらに、ワークブック内のワークシートの変更は*よりも優れていますが、単一の列や行に限定するほど有利ではありません。 – Jeeped
@Scottありがとうございました。シートそのものが変数であれば、式を長くする代償として、「間接」を避けることができます。例えば。 '= IF(、INDEX(Sheet1!$ 1:$ 1048576、...)、INDEX(Sheet2!$ 1:1048576、...))'となります。これは正しいです? –
ImaginaryHuman072889
@Peterワークシートはセル内にある変数なので、私はラインに沿ってもっと考えていました。多くのシートがネストされている場合、ifsは長すぎます。 –