- 締切済み
ある条件下でIF関数により取り出した数値を計算する方法
エクセル関数です。2つの数字の変化が A列 B列 100 1 103 1 109 1 120 1 105 -1 102 -1 120 1 123 -1 ・ ・ の時に,以下の2つの条件を満たす式を作る。(1)B列の数字を3行ずつ見てゆく。3行目までずっと1が続き,数字が変わらなければ(-1が出なければ)3行目のA列の数値(109)を取り出す。(2)数字を取り出してから次の3行目までの間でB列の数字が変わったとき(1→-1,-1→1)には,変わった行のA列の数値(105)を取り出す。次はB7なので120,次はB8なので123…と数字を取り出す度にリセットして,新たに3行の中から新しい数字を取り出す。 (頂いた回答) 3列使います。C4=IF((B3=B2)*(B4=B3)*(SUM(C$2:C3)=0)=1,1,0)。D4=IF(B4<>B3,1,0) E4=A4*(C4+D4)。 リセットする毎に,リセットした時点のA列の数字から取り出したA列の数字を引き算したいのですが,良い関数が思いつきません。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- cafe_au_lait
- ベストアンサー率51% (143/276)
回答No.1
C3:=IF(((B1=B2)*(SUM(C1:C2)=0)+(B2<>B3)),A3,"") D4:=IF(C4<>"",VLOOKUP(10^10,C1:C3,1)-C4,"") 10^10の部分は、A列の最大値を超える値とします。 それぞれ下にコピーしてください。