2012-02-27 12 views
0

複数のセルで1つのOFFSET()の結果を使用するにはどうすればよいですか?重複オフセット計算の回避

私は多くの行のワークシートを持っています。各行には、興味のある連続した列があります。関心のある列の範囲は、他の場所に設定されたいくつかのセルに依存します。私は、範囲を定義するために、OFFSET()関数を使用することができます。

各行について、同じ配列参照で複数の配列関数(SUM、AVERAGEなど)を呼び出す必要があります。

これは、それぞれの場合にOFFSETを呼び出すことによって行うことができます。SUM(OFFSET(args))、AVERAGE(OFFSET(args)); OFFSET呼び出しをすべて最新の配列定義と同期させようとするとエラーが発生します。

私は1つの場所での参照の定義を変更し、すべてにそれを適用することができるように、私は、

A1: =OFFSET(args) 
B1: =SUM(A1) 
C1: =MAX(A1) 

または同等に

B1: =SUM(OFFSET(args)) 
C1: =MAX(OFFSET(args)) 

を回すことができる方法はあります行の関数は?

+0

が異なる列です(または潜在的に異なる)、または同じ列をすべて見下ろしていますか? –

答えて

3

あなたの例を読んで、これは私には命名された式を採用するのに最適な時期です。 CTRL-F3を押して名前ウィザードを開き、MyRangeのような名前を作成し、REFERSTO:セクションにA1に入れるOFFSET()という式を入力します。絶対参照式にしてください。

次に、あなたが

A1で作成した結果の範囲を合計することができるはずです。= SUM(MyRange)

B1:= MAX(MyRange)

+0

+1シンプルで効果的です。 – brettdj

+0

合意。私の答えは複雑すぎた。これははるかに簡単です。 –

+0

このソリューションに従っていることを確認しようとしています - 行ごとに1つの名前付き式を提案していますか?その解決策は規模ですか? – VoiceOfUnreason

0

Address関数を使用して範囲アドレスを作成し、Indirectを使用してその範囲を参照することができます。たとえば、A1では、次のように入力します。=ADDRESS(5,2,1,1)&":"&ADDRESS(5,3,1,1)。それはあなたに$ B $ 5の住所を与えるでしょう:$ C $ 5。今、=SUM(INDIRECT(A1))のような公式を使用して、その範囲内の値の合計を得ることができます。

あなたはOffsetの使用がこのスキームに適合するかどうかわかりません。開始行と終了行と列を計算できる場合は、OffsetAddressIndirectに置き換えることができます。あなたはおそらく何とかそれを動作させることができますが、私はそれを助けるための十分な情報がありません。

0

オフセット配列入力の式を使用して、ソーステーブルの右側の一貫した列(必要に応じて別のシート)から始まり、右に向かって行ごとに正しい列を生成できます。次に、B1、C1などのセルの他のすべての数式で同じ範囲を使用できます。

異なる列数を選択する必要がある場合は、N/Aエラーを防ぐためにエラー処理を追加する必要がありますあなたの計算を汚染することから。これは、IFをISERRORまたはERROR.TYPEと組み合わせて行うことができます。

関連する問題