[[20200523123612]] 『データ抽出と集計について』(上月リノン) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『データ抽出と集計について』(上月リノン)

こんにちは、いつも参考にさせていただいています。
今回はどれだけ調べても解決しなかったので質問させていただきます。

現在自分の職場で使っている統計ファイルでは、例えば

1 りんご バナナ みかん
2 ぶどう
3 バナナ
4 みかん ドラゴンフルーツ
5 ぶどう りんご
6 りんご

というように、左端に通し番号、その右に売れた商品名を入力するようになっています。(同時に購入されたものは同じ行に入力。1セルに1商品名)入力はリスト形式で、全部で300種類ほどの商品があります。
そして、商品ごとの月当たりの販売個数を表に自動集計されるようにしたいのですが…。
りんごやバナナといった、毎月コンスタントに売れるものに関しては、あらかじめCOUNTIFを組み込んでいます。
しかし、ドラゴンフルーツなど、たまにしか売れないものに関しては、あらかじめ関数を入力することができません(300ほどある商品のうち、実際売れるのは月40種類くらい)。
そのため、現状は「レアなものが売れたら手入力」状態です。しかし手入力では、入力漏れやミス、数え間違いが多発しています。

お尋ねしたいのは、
1.あらかじめCOUNTIFを組んで集計している商品「以外」が入力されたとき、その商品名を任意のセルに抽出する(重複する場合二つ目以降は抽出しない)方法
2.上記で抽出された商品名が何個入力されているか数える方法
です。

1.がクリアできればおのずと2.もクリアできる(COUNTIFを用いて1.で抽出されたセルと同じものをカウントする等)と思うのですが、いかんせん1.を実現する方法が見つかりません。EXCELでは不可能な事なのでしょうか…。

なお、データの入力・削除に合わせリアルタイムで更新されるのが望ましいため、入力後フィルタをかけたりマクロを走らせたり、といった方式は考えておりません。

何か方法がございましたらご教授頂けると幸いです。
よろしくお願いいたします。

< 使用 Excel:Excel2007、使用 OS:Windows7 >


| 1.あらかじめCOUNTIFを組んで集計している商品「以外」が入力されたとき、
| その商品名を任意のセルに抽出する(重複する場合二つ目以降は抽出しない)方法
警告を発するだけなら入力規則でできると思いますが、
別のセルに抽出するならマクロということになりますね。
マクロの使用はOKなんですか?
(γ) 2020/05/23(土) 13:53

γさん

出来ればマクロは組みたくなかったのですが、やはり関数だけで希望する計算をさせるのは無理ですか…。
マクロの使用は可能だと思います。ボタンに登録しておけば、EXCELに詳しくない人でも十分使用できるはずなので…。
マクロを使うなら、集計表には先に=COUNTIF(データ範囲,任意のセル)を入力しておけば、マクロで任意のセルに商品名を抽出すると自動で集計してもらえますよね。
リアルタイムでの反映はできませんが、それでも現状よりは改善されそうです。
ただ、単純にデータをコピペするマクロしか組んだ事がないため、どのようなマクロになるかさっぱりです…よろしければ一例挙げていただけますでしょうか。
(上月リノン) 2020/05/23(土) 14:15


イベントプロシージャマクロを使って実行することになると思いますが、
それなりに複雑になってしまって、たぶん運用が難しくなると思います。

マクロで処理することを単純化、限定して、
「COUNTIF対象を含め、認められた商品であるかどうかのチェック」だけに限定してみてはどうですか?
それ以外に対して警告を発するようにしてみたらどうでしょうか。
そして、それは別のシートに入力(コピーペイストで)してもらう。
それが最大の効果があるように思うのですが、いかがですか?

# これは本来は入力規則の仕事かと思いますが、
# 入力規則はすでに入力候補リストの表示に使ってしまっているんですよね。
(γ) 2020/05/23(土) 14:29


うーん、間違い。
1. 「COUNTIF対象を含め、認められた商品であるかどうかのチェック」を行う。
  それ以外に対して警告を発する。
2.「COUNTIF対象外なら、別のシートに入力するようメッセージを出す」
ではどうですか?
(γ) 2020/05/23(土) 14:36

γさん

そんなに複雑になってしまうのですか。あまりにも複雑だと自分でも何がなんやら分からなくなりそうです。

確かに、手入力で集計する商品に対する警告は有用かもしれませんが、別シートに別記となるとやや煩雑になってしまいますね。それからすみません、先程は述べていませんでしたが、「同時購入されたものは同じ行に入力」とすることで人数の集計もしているため、シートを分けるとそれが困難になるかとも危惧されます。
改善はなかなか難しそうですね…。

#おっしゃる通り、入力規則は入力候補リストの設定に使ってしまっています。
(上月リノン) 2020/05/23(土) 14:47


 ちょっと確認

 >入力はリスト形式で、全部で300種類ほどの商品があります。 

 リストには全商品があるんですよね。
 それはどこかに入力されてるんですか?

 だったらその隣のセルにでも入力した個数を COUNTIF で出す。
 その列が「1以上の品名」(売れた商品)だけを抽出、とかではダメなんですかね?

 以上
(笑) 2020/05/23(土) 15:03

| 「レアなものが売れたら手入力」状態です。
ということだったので入力規則のリスト対象外のものがあり、
その誤入力が問題かと思っていました。
その前提が違うと、話はまた違ったものになりますね。

マクロは私も避けたほうがよいと思います。
特に中で更新するようなものだと、コードを理解していないと
思わぬ副作用が発生するリスクがあります。

例えば、複数セルの同時更新、削除や修正に伴う誤作動など、
最悪、データの整合性が失われるリスクすらあります。
安易に使用しないほうがよいです。
ということで、私はこれまでです。

(γ) 2020/05/23(土) 15:22


笑さん

リストの項目は別シートに入力してあります。
なるほど、言われてみればそういうやり方もありますね…!リスト横に12か月分のCOUNTIFを仕込めば何とかなりそうですもんね。ロックさえかけておけば安心ですし。
ひと月分のデータ計算を一シートで済ませる事しか頭にありませんでした。
「1以上の商品を抽出」に関してはまた調べてみます。
ありがとうございました。

γさん
言葉足らずで申し訳ありませんでした…。
入力規則で厳しく縛っているため、誤入力は発生しません。
お付き合いいただきありがとうございました。
(上月リノン) 2020/05/23(土) 15:39


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.