性格悪い人が優勝

1と入力されたセルの隣の列の値から、一つ前に1と入力されたセルの隣の列の値の引き算をしたいです。
具体的に、添付した画像の表で説明します。
A列は、連続した数値が入っています。
B列には、ところどころに、1が入力されています。(空白のセルが多いです。)
C列には、B列で、1と入力されたセル(例:B6)と同じ行のA列のセル(A6)の値から、B列で、一つ前に1と入力されたセル(B2)と同じ行のA列のセル(A2)の値の引き算をしたいです。
いまのところ、C列の結果は、D列にしめしたような計算で、ひとつずつ計算しています。

C列を、自動的におこなってくれるように工夫したいのですが、どんな関数をつかったらよいかわからないので、教えてほしいです。
補足ですが、行の入れ替え(サイズを変える、等)はしたくないです。(列の挿入はもちろんOKです。)

どうぞよろしくお願いします。

「エクセル 関数 1と入力されたセルの隣の」の質問画像

A 回答 (3件)

D列を作業用に使用します。

D列を最終的には見えないように設定してください。(文字色を白にするなど)
D1セルに「=A1*B1」
D2セルに「=IF(B2<>1,D1,A2*B2)」
D3セルより下はD2セルをコピー
C1セルに「=IF(D1=0,"",D1)」
C2セルに「=IF(D1=D2,"",D2-D1)」
C3セルより下はC2セルをコピー
    • good
    • 1
この回答へのお礼

ありがとうございました!

お礼日時:2016/05/12 17:30

こんにちは!



画像の配置だとC2セルに
=IF(AND(B2=1,COUNTIF(B$1:B2,1)>1),A2-INDEX(A$1:A1,MAX(IF(B$1:B1=1,ROW(B$1:B1)))),"")

配列数式になりますので、Ctrl+Shift+Enterで確定!
この画面からコピー&ペーストする場合は
上記数式をドラッグ&コピー → C2セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま)
Ctrl+Shiftキーを押しながらEnterキーで確定!
数式の前後に{ }マークが入り配列数式になります。

最後にC2セルのフィルハンドルで下へコピーしてみてください。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございました!

お礼日時:2016/05/12 15:14

A列使ってないけど C2セルに


=IF(B2="","",IF(COUNT($B$1:B2)<2,"",ROW()-MATCH(2,$B$1:B1)))

A列 使うなら
=IF(B2="","",IF(COUNT($B$1:B2)<2,"",A2-INDEX(A:A,MATCH(2,$B$1:B1))))
    • good
    • 0
この回答へのお礼

ありがとうございました!

お礼日時:2016/05/12 15:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!