エクセルでの質問です。
どう質問したら良いか、うまく伝わるかよくわからないのでわかりづらかったらすみません。

Aの列に「1」Bの列に「~」Cの列に「4」が入力されているとします。
入力されている数字は、通し番号の一部です。
Dの列に、1~4までの数字の個数である「4」を表示させたいと思っています。
1234、と指を折って数えると4になる、それです。

数字の多い方から少ない方を引いて、1を加えるというのは考えたのですが
A列のみの入力でC列に入力なしの、D列の結果が「1」という場合もあり
それをスマートに表示させる方法は何かないかと模索しております。

質問がわかりにくくてすみません。
A B C D
1 ~ 4 4
7 ~   1

こんな感じです。

実際は6桁の通し番号で、行も多いです。
計算式を入れて、下行にコピー。で対応したいのですが、
なんともうまくいきません。

ご教授頂けると助かります。

A 回答 (2件)

=if(c1,c1-a1+1,1)


とか
=max(c1-a1+1,1) または =max(c1-a1,0)+1
などでいいのかな?
    • good
    • 0
この回答へのお礼

ありがとうございます。

難しく考えすぎていたようです。
思い通りのことができました。
大変助かりました。

もっと勉強しなきゃ!
ありがとうございました。

お礼日時:2009/05/16 13:20

普通に算数で解決しますよ。


一つ目の条件として、A列とC列に数字が入っているとして
D1=C1-A1+1
二つ目の条件として、A列のみに数字が入っている場合
D1=1
何かの弾みでA列の数字よりもC列の数字が大きくなってしまってもカウントさせるのであれば、一つ目の条件を
D1=ABS(C1-A1)+1
こんな感じです。
二つを条件によって使い分ける場合はIF関数を使います。
D1=IF(C1="",1,ABS(C1-A1)+1)
など

数式を示しましたが、実際にどのような考え方でこのような数式になったのかを理解しないと
条件が変わったときに自分で対応できず、同じ質問を繰り返すことになります。
是非とも数式を理解して使用してくださるようお願いします。


ASB関数は絶対値を返す関数です。
(1ならば1が、-1ならば1が返ります)
IF関数は条件によって処理を変える関数です。
詳細はExcelのヘルプや解説書、解説サイトを参照してください。
    • good
    • 0
この回答へのお礼

自分の考えていたものでは答えがうまく出ず、めげておりました。
何がいけなかったか、どう考えればよかったか
おかげさまで気づくことができました。

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

お礼日時:2009/05/16 13:22

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


人気Q&Aランキング

おすすめ情報