2026-09

Excel関数

【Excel関数】時間の丸めは順序で結果が変わる理由と対処

外部システムが集計した労働時間と、Excelで再計算した労働時間を突き合わせたところ、15分だけ合わない行が出てきました。丸めのルールも数式も合っているはずなのに、です。原因は、丸める順序でした。この記事では、時間の丸めで結果が変わる仕組み...
Excel関数

【Excel関数】TIMEVALUEが24時間以上で誤る原因と対処

勤怠データの月間労働時間が「171:00」のような文字列で出力されていて、計算に使える数値に変えたい。そんなときにTIMEVALUE関数を使うと、エラーにならないまま誤った値が返ってきます。この記事では、TIMEVALUEが24時間以上の値...
Power Query

【Power Query】CSVの文字化けをEncoding指定で防ぐ方法

古いシステムから出力されたCSVファイルをPower Queryで取り込もうとすると、日本語部分が文字化けすることがあります。古いシステムからCSV連携をしようとすると、文字コードの違いによる文字化けによく遭遇します。 Excelでファイル...
VBA

【VBA】線形探索とDictionaryの速度差を実測比較

数万件のデータの中から、条件に合う1件を探す処理を書いたことはないでしょうか。Forループで1件ずつ照合するコードは、書き方としては素直です。ただし件数が増えると、極端に遅くなることがあります。前回の記事「バブルソートとクイックソートの速度...
VBA

【VBA】バブルソートとクイックソートの速度差を実測比較

前回の記事では、シート上でのセル操作が遅い理由を解説しました。同じ並び替え処理でも、シートに直接書き込みながら処理するのと、配列上で処理してから一括で書き戻すのとでは、処理時間に大きな差が出ます。前回は「なぜシート操作は遅いのか」という原理...
VBA

【VBA】処理が遅い本当の原因|シート操作が重くなる仕組み

今回から数回に分けて、Excel VBAの「ソート」「配列」「連想配列(Dictionary)」について書いていきます。きっかけは新卒時代の出来事です。他部署の方と雑談していたときに、「重くて困っているマクロがある」と相談を受けました。正式...
Power Query

【Power Query】キーの型がバラバラで結合できない時の対処法

困った場面Power Queryで2つのテーブルを、社員コードのような共通キーで結合(マージ)したときに、一部の行だけ相手側の情報が空欄になることがあります。キーの値を見比べても、片方は「123」、もう片方も「123」で、同じに見えます。そ...
VBA

【VBA】ScriptControlが64bit Officeで使えない時の代替コード

VBAでURLエンコードをする際、CreateObject("ScriptControl")(JScriptのencodeURIComponentを呼び出す方法)を使っているコードをよく見かけます。32bit版のOfficeではこれで動きま...
Power Query

【Power Query】フォルダ内データを自動取込みする設定

Power Queryでフォルダ内のデータを取り込む処理を、最初はCSVの中身をコード側でそのまま処理する作り方にしていました。動くには動きますが、元データを見返すたびにCSVを開き直す必要があり、CSV自体を更新する運用だと参照周りの管理...
VBA

VBAで個数を数える3つの方法【CountIf・入れ子ループ・Dictionary】

今の会社に転職してからVBAで業務を効率化する機会が増えました。もともとVBAはまったく分からない状態でしたが、実務で必要に迫られて少しずつ書けるようになりました。先日、同僚にVBAを教える機会があり、「各項目の個数を数える」という処理を題...