アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel2003で、A列にデータが数万行ありますが、その中にあるのはいわば主キーであり、せいぜい10通りまでしかユニークな値はありません。またそれらユニークな値について、連番などの規則性や関連性はありません。そのユニークな値を、VbAの処理で全てリストアップして配列に入れたいのですが、効率的にやる方法はないでしょうか。数万行のデータを総当りして連想配列に入れるのは無駄な手間だと思いますし、何か良い方法はないでしょうか。

A 回答 (3件)

ピボットテーブルを使って、含まれている項目を抽出してから、それを参照・利用するのではダメなのでしょうか。

VBAではなく、エクセルの機能を使って行うことになりますが、データの追加・更新・削除があっても、ピボットテーブルは勝手に更新されるはずなので、そんなに困ることは無いように思います。
    • good
    • 0
この回答へのお礼

ピボットテーブルでは、ちょっと困ります。ユニーク値のリストアップは、処理全体の中で最初の1ステップでしかなく、それを元に色々な処理を行います。また多数のブックを次々に開いてそのリストアップをするので、素早く自動処理したいのです。
あと、質問文に、A列のことを「いわば主キー」と書きましたが、これは間違いですね。ユニークな値が数種類しかないわけですから。

お礼日時:2013/11/03 09:59

こんにちは!



一案です。

Sub Sample1()
Range("A:A").AdvancedFilter Action:=xlFilterInPlace, unique:=True
Range("A:A").Copy Worksheets("Sheet2").Range("A1")
ShowAllData
End Sub

これでSheet2のA列に重複なしにデータが表示されているはずですので、
これを利用する方法はどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

いいですね。フィルタオプションで重複なし抽出すれば良いことでした。

お礼日時:2013/11/03 10:41

元データのコピー&「重複の削除」機能(AdvancedFilter メソッド)をするか、「統合」機能(Consolidate メソッド)を使うか、ピボットテーブルを VBA で操作します。




>ピボットテーブルでは、ちょっと困ります。ユニーク値のリストアップは、処理全体の中で最初の1ステップでしかなく、……

1 ステップでしかないと、なぜ困るのでしょうか。手作業またはマクロでピボットテーブルレポートを作製し、抽出されたデータをコピーなど、マクロで操作すればいいだけでは。


重複データを削除し重複のないリストを作成するマクロ-AdvancedFilterメソッド http://www.relief.jp/itnote/archives/003690.php
統合(Consolidate)でのデータ集計(Excel(エクセル) VBA入門) http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/v …
ピボットテーブルをマクロで作成する http://www.relief.jp/itnote/archives/018038.php
Excel 2010 で VBA を使用してピボットテーブル レポートとグラフを作成する(MSDN) http://msdn.microsoft.com/ja-jp/library/office/h …
    • good
    • 0
この回答へのお礼

VBAの中でピボットテーブルや統合機能を操作するのって、コードも複雑になり、動作としてもちょっと遅くならないですかね?フィルタオプションがシンプルそうだと思いました。

お礼日時:2013/11/05 22:00

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