こんばんわ。
http://oshiete1.goo.ne.jp/qa5404464.html
↑でエクセルの分類付けについていろいろ教えていただきました。
今回はまた別のエクセルで似たような分類付けをするのですが、
上記URLで教えていただいた関数で行うと件数が多すぎてエクセルが応答なしになることがあります。大体5万件以上のときが多いです。
現状の作業をマクロで行いたいのでアドバイスをください。
シートの構成ですが、1シート(シート名は作業用)のみにデータはまとまっています。
A列は製品番号
B列は製品名(ハードディスクやメモリなどPC周辺機器全般です)
C列は分類名として関数を使ってB列の分類付け。
となっています。各列の1行目は見出しです。
分類数は現状20種類以上です。
また今回のデータには未分類扱いのデータもあります。
それは削除せずに分類名を未分類をしなければなりません。
教えてほしいのは、
(1)D列から右側の作業列を使わずにマクロで一気にC列にB列の分類名を入力するやり方。
(2)分類名と同じシートを作成して各シートに値をコピペ(A列とB列のみ)
例えばCPUの分類ならシート:CPUに値をコピペするといった具合です。
===C列に入れる分類名と分類条件===
(1)分類名:未分類
分類条件:B列に"AAA"、"BBBB"、"CCCCC"という値がある。10種類あります。
"AAA"を含むでなく、完全一致の場合は未分類にします。
(2)分類名:CPU
分類条件:分類名が未分類でなく、B列に"GHz"か"AMD "か"Intel(R)"を含む。
(3)分類名:HDD
分類条件:分類名が未分類でなく、B列に"ハードディスク"か"ハードドライブ"を含む。
(4)分類名:メモリ
分類条件:分類名が未分類でなく、B列に"DDR"を含む、"メモリ"を含む。
(5)分類名:FDD
分類条件:分類名が未分類でなく、B列に"フロッピ"を含む。
(6)分類名:DVDROM
分類条件:分類名が未分類でなく、B列に"DVD-ROM"を含む。
(7)分類名:DVDスーパーマルチ
分類条件:分類名が未分類でなく、B列に"スーパーマルチ"を含む、"ブルーレイ"は含まない。
(8)分類名:ブルーレイ
分類条件:分類名が未分類でなく、B列に"ブルーレイ"を含む、"スーパーマルチ"は含まない。
(9)分類名:ブルーレイスーパーマルチ
分類条件:分類名が未分類でなく、B列に"ブルーレイ"を含む、"スーパーマルチ"を含む。
(10)分類名:CDRW
分類条件:分類名が未分類でなく、B列に"RW"を含む、"コンボ"は含まない。
(11)分類名:コンボ
分類条件:分類名が未分類でなく、B列に"コンボ"を含む。
(12)分類名:DAT
分類条件:分類名が未分類でなく、B列に"DAT"を含む、"カートリッジ"は含まない。
(13)分類名:OS
分類条件:分類名が未分類でなく、B列に"Windows"を含む、"リカバリ"は含まない。
(14)分類名:グラフィックス
分類条件:分類名が未分類でなく、B列に"NVIDIA"を含む、"RADEON"を含む、"グラフィック"を含む。
(15)分類名:モニター
分類条件:分類名が未分類でなく、B列に"ハード"を含まない、"型"を含む、"インチ"を含む。
(16)分類名:パラレル
分類条件:分類名が未分類でなく、B列に"パラレル"を含む。
(17)分類名:1394
分類条件:分類名が未分類でなく、B列に"1394"を含む。
(18)分類名:入力装置
分類条件:分類名が未分類でなく、B列に"キーボード"を含む、"マウス"を含む、"パッド"は含まない。
(19)分類名:電源
分類条件:分類名が未分類でなく、B列に"電源"を含む、"標準"は含まない。
(20)分類名:規格
分類条件:分類名が未分類でなく、B列に"エネルギー"を含む。
(21)分類名:保証
分類条件:分類名が未分類とモニターでなく、B列に"年"を含む、"時間"を含む
===ここまで===
上記の分類付けに当てはまらないものもあるのですが、それは空白のままにします。どのような分類にするかは検討中です。
記録マクロでやるにも編集が難しくて自力ではすぐには無理そうでした。
お手数ですがよろしくお願いします。
No.2
- 回答日時:
この処理は一回だけ処理するようなものでしょうか、それとも毎月、毎週に行う処理なのでしょうか?
今回一回だけなら面倒でも手動でautofilter辺りでやるのがいいと思います。
また毎週のように行うというのであればマクロでやるしかないのですが
条件が複雑なうえ今後も分類が変わる可能性も見えるのでディシジョンテーブルのようなもので条件整理の必要がありそうです。
ただ、分類コードみたいなものを導入すべき事例のように思います。
No.3ベストアンサー
- 回答日時:
問題が2つあります。
1 分類が複雑
2 件数が多い
>記録マクロでやるにも編集が難しくて自力ではすぐには無理そうでした。
解決法はあるのですが、分かってくれるかどうかこれが3つ目
一応の回答らしきものだけ提示します。
1ワークシートを使って分類名決定する。
作業用のワークシートを用意します
B1を”製品名”を入れるセルにします
4行目 B,C,Dに"GHz"か"AMD ""Intel(R)"
以下5行目以降同様に
○または×を含む
場合BからF列に入れます
○、×を含みかつ△を含まない
○、×をBからF列△をG~K列
○、×を含みかつ△を含む
○、×をBからF列△をG~K列
以降未分類以外を21分類まで入力
A33から下に1から25と連番
B34に=IF(B4="",FALSE,NOT(ISERROR(SEARCH(B4,$B$1))))
これを横に10列(K列)までコピー
L34に=OR(B34:F34) M35に=OR(G34:K34)
O列は=IF(N34,AND(L34,NOT(M34)),AND(L34,M34))
以上をB列からO列を53行目までコピー
N列はA列の番号を見ながら
○を含みかつ×を含まないという条件のとき=true()
○を含みかつ×を含むという条件のとき=false()
これでO列の該当する分類の行がTRUEになります(未分類は別)
P列は分類名を入力("未分類"、”CPU"など25は” ”(全角の空白))
E60から下に未分類の項目"AAA"、"BBBB"、"CCCCC"などを入力
B59に =MATCH($B$1,$E$60:$E$69,0) ’未分類になかったら#N/Aとなる
B60に =IF(ISERROR(B59),IF(ISERROR(B60),25,B60),1) true1がある列の番号が表示される。
B61に =IF(ISERROR(B59),IF(ISERROR(B60),25,B60),1)
B59、B60を参照して大刀する行番号が表示される(該当なしは25)
B62に=VLOOKUP(B61,A33:P57,16)
これでB62に分類名が表示される。
かなり広い表なので提示できませんが忠実に作ってもらえれば分かると思います。
後はマクロになりますが
一件ずつ作業用シートのB1に製品名を転記してB62の分類名を取得する
という作業を繰り返す。
速度のためには再計算を止めて範囲指定再計算をする工夫も必要。
お礼が遅くなり申し訳ありません。
実際にやってみましたところ、上記の分類条件でもひっかからないパターンの製品がちらほらありまして、分類条件が絞りきれない状態です。
社内で検討したところ、一部はメーカーのサイトで確認しないといけない項目もあるようなので、しばらくは分類付けは手作業になりそうです。
せっかくすごいやり方を教えていただいたのに残念ですが、他の作業でも使うことがあるかもしれないので大変ありがたいです。
考え方の参考になりました。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- 生物学 高校生物の質問です。 3 2023/02/05 17:47
- Excel(エクセル) エクセルについて/Excel グラフを作りたいのですが、エクセルが苦手でうまくできません。 グラフの 1 2022/07/28 00:35
- Excel(エクセル) コンボボックス及びリストボックスを5段階連動させる方法をご存知の方ご教授頂きたいです。 Excelで 3 2022/04/03 21:43
- 東北 1972(s47)年頃の陸羽東線について教えてください。 1 2022/04/15 17:23
- 事典・辞書 よくある図鑑でなぜ両生類と爬虫類が同じ図鑑にまとめられているのでしょうか? 9 2022/09/01 13:10
- Visual Basic(VBA) 3つの条件を指定してVBAで行を削除したい 条件1:分類1が重複 条件2:分類2が重複 条件3:個数 6 2022/06/24 11:07
- 化学 【化学】危険物の分類で分からないことがあります。 第三類自然発火性物質と他の危険物があります。例えば 2 2022/03/30 14:06
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
Excel 日付を比較したら、同じ...
-
Outlookを立ち上げたらGoogleロ...
-
outlookのメールが固まってしま...
-
会社PCのメールが更新されない
-
【スプレッドシート】指定の日...
-
ウィンドウィズ メモ帳で日付だ...
-
英数字のみ全角から半角に変換
-
Excelで空白以外の値がある列の...
-
Microsoft Formsの「個人情報や...
-
microsoft office
-
MicrosoftOfficeについて質問で...
-
マイクロソフト 一時使用コード...
-
outlookで宛先が異なるメールを...
-
Outlookでの時間指定送信機能に...
-
【スプレドシート】目標達成の...
-
自分の専門分野の仕事。初見で...
-
Microsoft Officeを2台目のPCに...
-
【Excel VBA】PDFを作成して,...
-
エクセルでXLOOKUP関数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
【スプレッドシート】指定の日...
-
英数字のみ全角から半角に変換
-
会社PCのメールが更新されない
-
マイクロソフト 一時使用コード...
-
Office 2021 Professional Plus...
-
エクセルで例えば、関数を使っ...
-
Microsoft Formsの「個人情報や...
-
1つのPCに「Excel 2010」「Exc...
-
エクセルで例えば、A1に㈱ベ...
-
理由を教えてください。
-
エクセルでXLOOKUP関数...
-
マイクロソフト オフィスについて
-
VLOOKUP関数について
-
teams設定教えて下さい。 ①ビデ...
-
Googleのスプレッドシートでシ...
-
【Excel VBA】PDFを作成して,...
-
Microsoft365で写真をアルバム...
-
Outlook で宛先が複数の場合の人数
-
Excel テーブル内の空白行の削除
おすすめ情報