プロが教えるわが家の防犯対策術!

Excel2007を使用しています。

先日下記のような質問をさせて頂いて、B2=IF(A2="","",A2-MAX(A$1:A1))という式を使わせてもらいました。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
A列にどんどん増えていく数値(増加量はランダム)が入力され、
B列に1つ上の数値を引いた値を計算式で出したいのですが、A列にはたまに空白が入ります。

A列   B列
50   
100     50 (←100-50)
160    60

170    10 (←170-160)
200    30
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


今度はこのような場合を作りたいのですが、Excelの計算式の理解が乏しくて、先日頂いた式から作り直すことができません…。

A列   B列
50     50 (←100-50)
100    60
160    10 (←170-160)

170    30
200   

今回の場合はどのように直したらいいのか(orまったく別の式なのか?)分かる方よろしくお願いします。

A 回答 (5件)

>今回の場合はどのように直したらいいのか(orまったく別の式なのか?)分かる方よろしくお願いします。


論理を考え直してください。
提示のデータは行が増す毎に値が必ず大きくなると言う条件であれば次の式で良いでしょう。

B2=IF(A2="","",IF(COUNT(A3:A$1000)=0,"",MIN(A3:A$1000)-A2))

A列が空欄のときはB列を空欄にします。
A列の次の行(A3)から最大行(A$1000)までの最小値からA列の現在行(A2)を引いた値がB列の現在行(B2)になれば良いことになります。

=MIN(A3:A$1000)-A2

但し、A列の次の行(A101)から最大行(A$1000)まで空欄のときはB列の現在行(B100)は空欄とする。

=IF(COUNT(A101,A$1000)=0,"",減算式)
    • good
    • 1
この回答へのお礼

引き算のはずなのに、ちょっと空白セルが入るだけで手こずってましたが、なんとかなりそうです(^^;)
皆さんご回答ありがとうございました。

お礼日時:2014/01/06 01:00

》 A列にどんどん増えていく数値(増加量はランダム)が入力され


ということなので、この回答は適切ではないと承知なるも。参考までに。

1.A列のデータをD列にコピー&ペースト
2.D列のデータを昇順に[並び替え](→空白セルなし)
3.セル B1 に次式を入力し、此れを下方へズズーッとドラッグ&ペースト
   =IF(A1="","",IF(COUNT(A$1:A1)<COUNT(A:A),LOOKUP(A1,D$1:D$7,D$2:D$8)-A1,""))
LOOKUP関数内の検査範囲と対応範囲を1行ずらしていることに注意
「Excelでの空白セルを除いた引き算【p」の回答画像4
    • good
    • 0

丁寧にすれば、B1に


=IF(AND(A1<>"",COUNT(A1:A$9999)>1),MIN(A2:A$9999)-A1,"")
ぐらいで。
    • good
    • 0

A列の一つ下の数との差をB列に表示する。


A列には間に空白が入る場合があり、その場合は次の数字を使用。

という事で良いでしょうか?

途中で入る空白が1行であれば以下のようになると思います

B2=IF(A2="","",IF(A3<>"",A3-A2,A4-A2))

途中の空白が2行まで出来る事を想定するのであれば

B2=IF(A2="","",IF(A3<>"",A3-A2,IF(A4<>"",A4-A2,A5-A2)))

のようにIF分の入れ子を増やしてあげると良いです
    • good
    • 0

セルを消去して、上にずらしていけばいいと思います。


右クリック→消去→上方向にシフト→OKでできます。
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています