Excelで特定のポイントまで列に値を追加し、繰り返します

Excelで特定のポイントまで列に値を追加し、繰り返します

提供された画像に示されているものと同様の値が数千個あります。

列 K の時間値を合計しようとしていますが、列 M に「フラグ」の値があり、連続した値のみがある場合のみです。

たとえば、セル M467 ~ M477 はすべてフラグが付けられており、それらを合計すると約 0.017 時間になります。

次に、セル M478 ~ M480 は無視され、セル M481 ~ M483 が合計されて約 0.0036 時間になります。これを実行する自動化された Excel 数式は何ですか?

スプレッドシートの値の例

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

答え1

ヘルパー列を持つオプション。

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

Q2の式は

=IF(AND(M1<>"flag",M2="flag"),K2,IF(AND(M1="flag",M2="flag"),SUM(Q1,K2),""))

そしてR2では

=IF(Q3="",Q2,"")

コピーしてください。

答え2

合計を各グループの最初の行に表示したい場合は、次の数式を使用できます。

=IF(AND(M2="Flag",M1<>"Flag"),SUM(K2:INDEX(K2:INDEX(K:K,MATCH(1E+99,K:K)+1),MATCH(TRUE,INDEX(M2:INDEX(M:M,MATCH(1E+99,K:K)+1)="",),0)-1)),"")

詳しく見てみましょう:

2 つは、INDEX(K:K,MATCH(1E+99,K:K)+1)数字が入っている列 K の最後のセルを見つけて、それを参照範囲の範囲として設定します。この方法では数式は動的であり、新しい行が追加されると数式が自動的に調整されます。

次に、Sum 内で同じ行のセルから開始します。K2 は相対的であり、数式が下に移動すると参照も移動します。範囲内の最後のセルは、別の INDEX/MATCH で設定されます。

今回は、数式が入っている行の列 M の最初のセルが空であるかどうかを調べます。その行 -1 を SUM() の最後の行として設定します。

IF() は、合計を計算し、残りを空の文字列にするだけです。

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


グループの一番下に配置する場合は、次の配列数式を使用します。

=IF(AND(M2="Flag",M3=""),SUM(INDEX($K$1:K2,IFERROR(MATCH(2,IF($M$1:M2="",1)),1)+1):K2),"")

配列数式なので、編集モードを終了するときは Ctrl + Shift + Enter で確定する必要があります。正しく実行すると、Excel によって{}数式が囲まれます。

今回は、最初の行を設定するために、現在の行の上にある M の最後の空きスペースを探します。

IFERROR は、すぐ下の行に「フラグ」がある場合に、タイトル行を処理します。

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

関連情報