記事一覧
複数ある項目Keyにするとき
改修中のソースの中で出会う複数項目の連結
Keyで重複を作成することはバグ発生の原因になります
Excelで複数の項目をKeyにするとき、項目を連結してKeyを作成します
気をつけたいのは文字の長さ
文字の長さがすべて固定の時はそのまま、連結しても問題ないでしょう
可変のときは数値の項目を2度連結すると
極端の例ですが 111
1&11 11&1 というKeyができる可能性
データ件数が多いときの重複データの調べ方
重複データの確認をするとき、関数のCOUNTIF、COUNTIFSを使用することが多いと思います
関数を使用した後にAutofilterして重複分のみ表示する
件数が多くなると処理時間がかかります
そこでピボットテーブルを使うという方法もあります
Excelのシートに追加できる件数は100万件ちょっと
それ以上のデータを処理したいときはAccessにデータを格納して
Group by とCo
Excelの数式を値に変える
Excelに数式をたくさん入れて作業している人いませんか
場合によっては数式を入れてAutofilterを使うと使用中に数式の計算が自動で行われます
その時は手動計算にしておいてもよいと思います
その時には数式を値に変更してAutofilterするのも手段として考えてみましょう
Countifの数式の時は他にも方法がありますのでまた、今度
workbookを変数に格納しないのはありか、なしか
最近、目にしたVBAのworkbookの書き方です
workbooks(xx).worksheets(x).range(1,"A").select
同一のBookを使用するときには同じ名前がずーっと続くのです
そしてbookを閉じる時にはbookの一覧を取得してあれば閉じる
って 途中でbookの名前を変更したものだったら閉じれなくてメモリを食い潰す
という斬新な書き方にプチ脳内パニックに
Key項目の重複チェック
Keyになる項目の重複チェックを行う時は
ExcelだとCountifで件数を取得して重複件数を取得することが多いです
そのあとにAutofilterで重複したKeyのみ表示
上記は生データを加工できないときの方法です
生データを加工できるときは重複削除を行います
AccessだとGroup By とCountや、Distinctを使っています
プログラミングにコメントは必要なのか
プログラムソースにコメントがあったほうが親切です
コメントの記載をしたくないときはシートに概要の記載をお願いしたいですね
最近、会社をやめた方のExcelのソースの修正や高速化を求められることが多いです
プログラムにコメントは必要ないから中を見ればわかるでしょというスタンスの方を見かけます
作業しながらプログラムする方の多くは
繰り返し処理の中でif文で一致したらまた繰り返し処理と多重ループ