3

セルB5に次の数式を記述しています

=SUMPRODUCT(--(COLORINDEXOFRANGE(Data!D10:HO10,FALSE,1)=COLORINDEXOFONECELL(Data!$F$3,FALSE,1)))

B5から次の行にドラッグすると、数式のセルが次のように変わります。COLORINDEXOFRANGE(Data!D11:HO11,FALSE,1)

ただし、列番号を同じままにし、行番号だけを変更する必要があります。たとえばCOLORINDEXOFRANGE(Data!E10:HO10,FALSE,1)、セルC5とCOLORINDEXOFRANGE(Data!F10:HO10,FALSE,1)セルD5などです。

COLORINDEXOFRANGEは、イン​​ターネットで見つけた組み込み関数です。

助けてください。ありがとう

4

4 に答える 4

3

INDEX範囲の終わりが同じままである場合は、範囲の始まりのみを変更するために使用できます。つまり、次のように置き換えますData!D10:HO10

=INDEX(Data!D$10:HO$10,ROWS(B$5:B5)):Data!HO$10

このタイプのINDEX数式は半揮発性のみであり(シートが開かれると再計算されます)、完全に揮発性OFFSETINDIRECT機能するよりもおそらく望ましいです。また、関数は、結果を変更せずに数式の上に挿入(または削除)される行に対処するROWSよりも優れていますROW

于 2012-09-19T19:25:51.270 に答える
1

水平参照から垂直参照に変更するには、 を使用OFFSETしました。別のシートの値を参照して、=OFFSET('Forecast'!$I$17,COLUMN()-3,0)参照の column() が行参照になるようにします。

于 2012-09-19T17:49:07.273 に答える
1

これを回避するには、式を固定参照セルにドラッグする方法がいくつかあります。

  1. 質問に文字通り答えるには、を使用して現在の行番号を参照できるROW()ためROW() - 1、前の行番号が得られます。
  2. ただし、範囲を参照しているため、これは機能しません。もう 1 つの関数は ですINDIRECT()。ドキュメントを参照してください。ただし、これは INDIRECT("R5C" & COLUMN(), FALSE) のように使用できます。
  3. オプション #2 では数式が非常に長くなり、(ほとんど) 判読不能になる傾向があるため、名前付き範囲を使用して回避できる場合があります。
于 2012-09-19T16:44:24.737 に答える
0

同様の問題がありました。値を下にドラッグしても、期待どおりに増加しませんでした。問題は、データにフィルターを適用していたことです。フィルタを削除すると、機能が回復しました。

于 2016-03-07T09:19:14.647 に答える