0 を含む最後の列の後の 16 列を合計する必要があります

0 を含む最後の列の後の 16 列を合計する必要があります

例:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2

17 列目から始めて、最後の 1 まで (16 列) の数字を合計したいと思います。ただし、2 番目の 1 とそれ以降のすべてについては、その前にゼロがあるという条件を満たしていないため、合計は不要です。 を使用していましたSUMIFが、シート全体に拡張しようとすると、たとえば - のように sumif が続行されSUMIF(A1:A16, "=0", A17:A33)、2 番目の 1 にはゼロ以外の値が返されます。

答え1

これがあなたが望んでいることかどうか本当にわかりませんが、ここにあります:

ではB2、次の式を使用します。

=IF(AND(SUM($A1:A1)=0,B1>0),SUM(B1:Q1),"")

そして右に人口を増やす

最終的には次のようになります。

ここに画像の説明を入力してください

答え2

これにより、範囲内で最初に一致しない列が検索され0、次の 16 列が合計されます。

=SUM(INDEX(A1:AH1,MATCH(0,A1:AH1)+1):INDEX(A1:AH1,MIN(MATCH(0,A1:AH1)+16,COLUMNS(A1:AH1))))

MATCH(0,A1:AH1)0現在のセルがあり、次のセルがより大きい場合の相対列番号を返します0。範囲の先頭に 1 を追加し、末尾に 17 を追加します。

ここに画像の説明を入力してください

答え3

SUMIF&関数を使用したいくつかのトリッキーな方法を提案したいと思いますSUMPRODUCT:

使い方:

  • どちらの方法でも、行に1ヘルパー値が必要です(スクリーンショットを確認してください)。341

ここに画像の説明を入力してください

  • セル内の数式AV3:

    =SUMIFS(N2:AU2,N1:AU1,">=17",N1:AU1,"<=32")
    
  • セルにこの数式を入力してくださいAV4:

    =SUMPRODUCT(SMALL(N2:AU2,{17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32}))
    

巨大なデータセットを扱う場合は、この式を使用できます。

=SUM(INDEX(N2:AU2,0,COLUMNS(N2:AU2)-(L$6-3)):INDEX(N2:AU2,0,COLUMNS(N2:AU2)))
  • セルにはL6のカウントが格納されているため1s、セルではこの数式を使用することをお勧めしますL6

    =COUNTIF(N2:AU2,1)

  • 必要に応じて、数式内のセル参照を調整できます。

関連情報