- ベストアンサー
エクセルの集計 担当者空欄の場合の合計数を計算したい
よろしくお願いいたします。 エクセルで担当者別の売上を集計していますが、ごく稀に担当者が“空欄”になっている場合があります。(担当空欄でも売上が出てくる場合があるので困っています。) 担当 売上 担当A 50 担当B 20 (空欄) 10 担当A 5 担当が決まっている場合はSUMIFで事足りるのですが、“空欄”の場合どうすれば良いか分かりますか? ※業務アプリからCSVでデータを吐き出してきます。 ※そのとなりのSheetで、担当別の一覧表を作成したい ※件数は15000件程度のボリュームです。 どうぞよろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>、“空欄”の場合どうすれば良いか分かりますか 俗に言う、「空欄」のセルの中身(値)がわかればSUMIFが使えるのでは? エクセルでは空白といえばある決まったもので、スペースや書式で何も見えてない場合にも言いそうな空欄はそれと誤解されます。注意。 >CSVでデータを吐き出してきます 吐き出したものをエクセルに読み込ませているのでしょう。 (表現は正確に) ーー CSVの実験 CSVファイルをエクセルに読み込ませてみると ,123,as ,,wee as,,11 はエクセルでは A列 B列 C列 123 as wee as 11 となり、A1はエクセルの「空白」です。 ーーー SUMIFの実験 例 データ A列 B列 a 1 s 2 3 <-A列空白 w 4 e 5 2 <-空白 s 1 =SUMIF(A2:A8,"",B2:B8) で5と出ましたが ですからSUMIFの関数の性格ではなく、 うまく計数が出ないというのは「空欄」と言っているセルの 中身=値を突き止めるのが先決ではないですか。 最初2文字分なら、=CODE(MID(A4,1,1))&" "&CODE(MID(A4,2,1)) のような式でどういう文字が入っているか判るかもしれません。 (空白は捉えられないが)また、文字コード表ぐらい持ってないと赤ら無いですが。 以上から質問の内容をを掴みきれませんでした。 勘違いだったらすみません。
その他の回答 (4)
- merlionXX
- ベストアンサー率48% (1930/4007)
業務アプリからCSVでデータを吐きだされたデータなら、一見空欄に見えてもスペース等が入っている可能性がありますね。 なら、こんな感じではいかがでしょう? A列が担当、B列が数値で1行目から15000行までの場合です。 =SUMPRODUCT((TRIM(A1:A15000)="")*(B1:B15000))
お礼
merlionXXさん、早速ありがとうございました。 そうなんです、「空欄」の正体がつかめず苦戦していました。 スペースを疑いDelしてもNGで、、、 他からセルを切り取って貼り付けると、""の空欄として認識してくれました。 ただこんな事はいちいちやっていられないので↓を使わせて頂きます。 =SUMPRODUCT((TRIM(A1:A15000)="")*(B1:B15000)) ありがとうございました。
- mu2011
- ベストアンサー率38% (1910/4994)
次の方法は如何でしょうか。 空欄は空欄として集計、データをsheet1で見出し行有り(A列は「担当」とします)、抽出をsheet2とします。 (1)sheet1のC1に"担当"、C2に="*"を入力 (2)sheet2のA1を選択→データ→フィルタ→フィルタオプションの設定→メッセージボックスが表示された場合はOK (3)指定した範囲にチェック付け、リスト範囲欄にsheet1!$A:$A、検索条件欄にsheet1!$C$1:$C$2、抽出欄に$A$1、重複するレコード無視する→OK (4)B2に=SUMIF(sheet1!A:A,$A2,sheet1!B:B)を入力後、下方向にコピー (5)A列の最終行に空欄を設定し、=SUMIF(sheet1!A:A,"",sheet1!B:B)で集計する
お礼
mu2011さん、早速ありがとうございました。 うまく行きそうでしたが、やり方が下手なのか思うようにいきませんでした。 ただ今後の参考になりそうです。 リテラシーの向上になりました。 どうもありがとうございました。
- hallo-2007
- ベストアンサー率41% (888/2115)
※そのとなりのSheetで、担当別の一覧表を作成したい ですが、ピボットテーブルは試されましたか。 空欄があってもきちんと空白として集計してくれると思います。
お礼
hallo-2007さん、どうもありがとうございました。 >ピボットテーブルは試されましたか。 恥ずかしながら初めて触れた機能です。 少しいじってみましたがなかなか良さそうですね。 今後に使えそうです。 ありがとうございました。
- kuma56
- ベストアンサー率31% (1423/4528)
方法はいくつもあると思いますが・・・・・ 例えば、空欄を止めて“担当X”や“無担当”等の名前をつけて集計するとか、 横に一列計算用の列を設定して、担当の欄が空白の値だけIF関数で抜き出して集計するとか。
お礼
kuma56さん、ありがとうございました。 お陰様で何とか策は見いだせそうです。
補足
kuma56さん、さっそくありがとうございました。 >例えば、空欄を止めて“担当X”や“無担当”等の名前をつけて集計する 処理する元データがCSVで引っ張ってきた時点で“空欄”になっています。 件数(行)が15000件、担当が20名程度なので、なるべくシンプルな処理をしたいと考えているのですが、やはり一度“空欄”をカウントするなりの前処理が必要なのでしょうか。 よろしくお願いいたします。
お礼
imogasiさん、早速ありがとうございました。 不十分な質問にも関わらずご丁寧にありがとうございました。 ご指摘の通り「空欄」の正体が分からず苦戦しています。 自分でも簡単なテストをしてみたところ=SUMIF(A2:A8,"",B2:B8) でOKでした。 ただ手持ちのデータでは上手く行きません。 通常であればSUMIF""でOKという事が分かり、今後の収穫になりました。 ありがとうございました。