[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『合計0以外の個数』(あや)
項目別に計算式で表にまとめた列内に5から10の項目が入ってます。その隣に金額が入ってますが項目別の合計はそれぞれ出せたんですが、金額の入っている項目の個数は0もカウントしてちがってる。金額の合計は0はたしても0だから関係ないけど、個数はカウントするので、>0とか入れたんですけどうまくいかない。
手袋 200
皮手 400
ゴム 0
手袋 200
皮手 400
皮手 400
手袋 0
手袋 200
とあれば合計は良いですが、個数は0も数える。
=COUNTIF(B1:B8,">0")で条件">0"にすれば、0より大きい数値をカウントできます。
A B
1 手袋 200
2 皮手 400
3 ゴム 0
4 手袋 200
5 皮手 400
6 皮手 400
7 手袋 0
8 手袋 200
9 6 =COUNTIF(B1:B8,">0")
6 =COUNT(B1:B8)-COUNTIF(B1:B8,0)
(シニア)
ごめんなさい、質問の一番大事な所を言ってませんでした。
上の表より手袋、皮手、ゴムのそれぞれの個数を表示したい。
もう一度おねがいします。
A列の商品別に個数B列の合計を求めたいのですか?
A B
1 手袋 200
2 皮手 400
3 ゴム 0
4 手袋 200
5 皮手 400
6 皮手 400
7 手袋 0
8 手袋 200
9
10 手袋 600 ←=SUMIF($A$1:$A$8,$A10,$B$1:$B$8)
11 皮手 1200 ←=SUMIF($A$1:$A$8,$A11,$B$1:$B$8)
12 ゴム 0 ←=SUMIF($A$1:$A$8,$A12,$B$1:$B$8)
指定された検索条件に一致するセルの値を合計します。
書式 SUMIF(範囲, 検索条件, 合計範囲)
範囲 評価の対象となるセル範囲(A1:A8)を指定します。
検索条件 セルA10(手袋)、A11(皮手)、A12(ゴム)を指定します。
合計範囲 実際に計算の対象となるセル範囲(B1:B8)を指定します。
B10に入力した式 =SUMIF($A$1:$A$8,$A10,$B$1:$B$8) をB11:B12に下方複写します。
これで、対象商品の個数の合計が求まります。
(シニア)
ごめんなさい、説明が下手ですね。上記表より合計はでてますが、手袋、皮手、ゴムの項目のカウントが知りたい。
A B
1 手袋 200
2 皮手 400
3 ゴム 0
4 手袋 200
5 皮手 400
6 皮手 400
7 手袋 0
8 手袋 200
で、手袋は4項目、内1つは0なので 3つとなりますね。また、ゴムは1項目ありますが0なので 0となります。こういった式です。やっぱり説明下手ですか?
A列の商品別にB列が">0"の条件で件数を求めたい
A B
1 手袋 200
2 皮手 400
3 ゴム 0
4 手袋 200
5 皮手 400
6 皮手 400
7 手袋 0
8 手袋 200
9
10 手袋 3 ←=SUM(IF($A$1:$A$8=$A10,IF($B$1:$B$8>0,1,0)))
11 皮手 3
12 ゴム 0
B10に入力した式 =SUM(IF($A$1:$A$8=$A10,IF($B$1:$B$8>0,1,0))) と入力し、
CtrlキーとShiftキーを押しながらEnterキーを押すと、行列数式として入力されます。
式は{}中括弧で囲んだ {=SUM(IF($A$1:$A$8=$A10,IF($B$1:$B$8>0,1,0)))} となります。
そのままEnterキーで確定すると#value!のエラー値が返されます。
この場合はファンクション2を押して編集状態にして、Ctrl+Shift+Enterで確定します。
この式をB11:B12に下方複写します。
これで、対象商品の">0"の件数が求まります。
(シニア)
出来ました。けど、また旨く説明できませんが、A列もB列も式が入っていてカウントしてしまいます。
実は上の表は例として書いたもので、取引先の支払表を作ってます。
A社 A銀行 振込 1000 手形 2000
B社 A銀行 振込 2000 手形 0
C社 B銀行 振込 1000 手形 500
D者 B銀行 振込 0 手形 500
と、こんな具合です。別の表から合計を振込金額の所に自動で入力して、一緒に取引銀行名も自動で移ってきます。別表はまったく0の場合のみここの表には表示されない。この中で、A銀行とB銀行の支払件数がしりたい。伝わりました?
A B C D
1 銀行名 振込 手形
2 A社 A銀行 1000 2000
3 B社 A銀行 2000 0
4 C社 B銀行 1000 500
5 D者 B銀行 0 500
6
7 A銀行 2 ⇒ =SUM(IF($B$2:$B$5=$B7,IF($C$2:$C$5>0,1,0)))
8 B銀行 1
A社、B社と入力すれば指定銀行A銀行が入力されるようにし、振込み金額も別表から参照するようにして確かめました。
C7に=SUM(IF($B$2:$B$5=$B7,IF($C$2:$C$5>0,1,0))) と入力し、Ctrl+Shift+Enterキーで確定すれば、
取引銀行別振込み件数が表示されました。振込み金額欄は(=参照値)の式
問題は『別表はまったく0の場合のみここの表には表示されない。』=if(参照値=0,"",参照値)であれば、
C7に=SUM(IF($B$2:$B$5=$B7,IF($C$2:$C$5<>"",1,0))) と入力し、Ctrl+Shift+Enterキーで確定すれば、
表示されるようになる筈ですが、如何ですか?
(シニア)
何で???出来ないよ。
今作ってる式はB列に=VLOOKUP(A1、別表$B$3:$F$200、4、FALSE)と入力、またA列とB列の間に振込みの総合計があるとして
C列に=IF(A1=0、””、振込合計-D1)と入力してます。
=SUM(IF($B$2:$B$5=$B7,IF($C$2:$C$5<>"",1,0))) でいいんですよね。そして確定。
なんでできないんだろう?#N/Aとなっちゃう?
エラー値 #N/A は、関数や数式に使用できる値がない場合に返されます。
VLOOKUP 関数の引数 "検索値" に、不適切な値を指定しているのが、原因です。
=VLOOKUP(A1、別表$B$3:$F$200、4、FALSE)の検索値A1は別表$B$3:$F$200の先頭列にある値ですか?
別表$B$3:$F$200の範囲の4列目は銀行名ですか?
A2の得意先名検索値にして取引先の銀行名を表示する式は=VLOOKUP(A2、別表$B$3:$F$200、4、FALSE)
にすれば、解消すると思います。
=IF(A1=0,"",振込合計-E1)の式では0表示になります。
『別表はまったく0の場合のみここの表には表示されない。』ではないです。
A B C D E
1 得意先 振込合計 銀行名 振込 手形
2 A社 3000 #N/A 1000 2000
3 B社 2000 A銀行 2000 0
4 C社 1500 B銀行 1000 500
5 D者 500 B銀行 0 500
6
7 A銀行 #N/A =SUM(IF($C$2:$C$5=$C7,IF($D$1:$D$5>0,1,0)))
8 B銀行 #N/A
もう一度、確認して下さい。
(シニア)
=VLOOKUP(A1、別表$B$3:$F$200、4、FALSE)と書きましたが、A1ではなくA3でした。銀行名はちゃんと別表4列目で、表には移ってきてます。=SUM(IF($C$2:$C$5=$C7,IF($D$1:$D$5>0,1,0)))で確定しても#N/Aになります。空白の所は0値の非表示を解除すると0になります。(関係ない?)一番先頭も。ちなみに上の表で6行目得意先が入ってないのでc列にも当然何も入ってないですが
=SUM(IF($C$2:$C$6=$C7,IF($D$1:$D$6>0,1,0)))とやってます。これは#N/Aが出るのと関係あります?c列もD列も計算式以外入ってないと思うけど。だんだん混乱してきた。
C列の銀行名が表示されて、#N/Aのエラー値がなければ、正しく表示されます。
この式はC列の銀行名が、C7でD列の振込額が0より大きければ1を代入し、でなければ0を代入します。
この合計をSUM関数で処理しています。
C2の式は=VLOOKUP(A2、別表$B$3:$F$200、4、FALSE)、D2の式は=IF(A2=0,"",B2-E2)
C2:D2を選択して、フィルハンドル(外形枠の右下角でマウスポインタが+になるところ)をダブルクリックでコピーされます。
これで、銀行名と振込額が表示されていれば、D7の式は正しく表示されます。
これで、確認できたら、C7:D7を選択し、外形枠をつまんで、他の適当な場所に移動して、
C列、D列の範囲を変更して利用します。
今度こそ、成功しますように願っています。
(シニア)
こんな何も知らない者にずっと付き合ってもらってありがとうございました。おかげさまで何とか出来ました。何が悪かったのか、もう一度全部の式をすべて見直し、(時間かかったけど)何とか出来ました。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.