Excelチップス                            メインに戻る

インターネットで「Excel、VBA」などで検索すればExcelチップスを手に入れることができますが、ここではプロジェクト管理に役に立つ簡単なExcelチップスを紹介します。 詳細はサンプルファイルに記載しています。

ご質問のある方はaesproject@aol.comに連絡願います。
     
複数シートのデータを一つのシートに統合するマクロ
同じあるいはほぼ同じフォーマットの複数シートを統合してA列に各シート名を出力します。
また、Quantityの列が同じでない場合、そのキーワードを入力することで最大列数に調整して統合します。

次のリンクからサンプルファイルをダウンロード : Multi_to_Single_Sheet

計算式で自動採番テクニック
自動通し番号、オートフィルターで表示されたアイテムだけの通し番号、空白行をスキップした通し番号、グループ内の通し番号、グループ番号などを自動採番する数式を紹介しています。
少し複雑ですが、各アイテム毎に出荷順の通し番号を自走採番する数式を追加更新しました。

次のリンクからサンプルファイルをダウンロード : Numbering Technique-r1
  

縦方向の結合セルを解除し全セルに同データをフィルするマクロ
結合セルを見出しで使ったりデータにも結合セルを使われているのを多く見受けます。 見掛けはスマートそうに見えますが、データベース或いはピボットテーブルで利用する場合、結合されたデータは困りものです。結合セルを解除すると一番上のセルにしかデータが入っていません。
縦方向の結合セルを解除して全セルに同データをフィル(コピー)するマクロを紹介します。 また、マニュアル操作およびExcel VBAマクロの簡単作成手順も紹介しています。
2015/4/15:バグを修正、個人用マクロブック作成の説明を追加しました。

次のリンクからサンプルファイルをダウンロード : Merge Break Fill

新旧レポートを比較し更新(変更)セルに色を付ける条件書式テクニック Level-1
週或いは月単位で発行する発注リスト、その他ステータス・レポートで更新(変更)箇所が判ると大変便利です。 レビュー時間も短縮できて業務改善になります。
新旧レポート・データをサンプルファイルの各専用シートに値貼り付けします。
新データの初めの新規或いは削除行以降に色が付きます。目視で新規行である場合、旧データのシートの該当行に空白行を追加します。このような作業をすることで、更新(変更)箇所のセルだけに色が付きます。慣れると簡単な作業です。
マクロを組んで追加アイテム行、削除行を出力する別サンプルは少々敷居が高いので、こちらが手軽でよいと思います。

次のリンクからサンプルファイルをダウンロード : Revision_Indication_Level1
 
新旧レポートを比較し更新(変更)セルに色を付ける条件書式テクニック Level-2
バージョン1では旧データ範囲に名前定義をしていましたが、当バージョンはその必要がありません。
Excel2007, 2010, 2013で動作を確認済みです。
Rev.1 2016/9/22 : Sheet "Previous"にも条件付き書式を設定して、新旧を比較し安く修正しました。
Rev2 2017/3/18 : 範囲を列範囲を選択し全行にすることで、行追加などによる範囲の多重化を回避


次のリンクからサンプルファイルをダウンロード : Revision_Indication_Level2_r2
 
新旧レポートを比較し更新(変更)セルに色を付けるマクロ Level-3
マクロで処理し更新(変更)セルに色を付けています。(条件付書式を使っていませんし、旧データ範囲に名前定義をする必要もありません。)
Excel2007, 2010,で動作を確認済みです。Excel2013でも動作するはずです。

次のリンクからサンプルファイルをダウンロード : Revision_Indication_Level3
 
不動小数点誤差発生の回避
Excelでは浮動小数点誤差を自動回避するようになっていて誤差発生を経験することはないかもしれませんが、多量データで小数点を合計する計算式を用いた場合まれに発生するようです。その発生例と回避する計算式を紹介しています。
2016/5/17:計算の説明に間違いがあり訂正


次のリンクからサンプルファイルをダウンロード : Floating_Point_Error_Avoid_r1
 
ピボットテーブルのスタイル設定例(Excel2007、2010)
Excel2007、2010の色付き標準スタイルを利用して2003風レイアウト・スタイル設定を紹介します。

次のリンクからサンプルファイルをダウンロード : PivotTable_Style
 
複数ピボットテーブルのレポートフィルター選択の同期(Excel2007、2010)
Excel2007、2010でピボットテーブルにスライサー機能が追加されました。
この機能を使って、1つのピボットテーブルのスライサー又はレポートフィルターでアイテムを選択して他のピボットテーブルも自動で同期させることができます。


次のリンクからサンプルファイルをダウンロード : PivotTable_Synchronize
 
ピボットテーブル日付グループ化の英語表示マクロ(Excel2007、2010)
日本語環境ではピボットテーブルでグループ化した場合、日、月、年が日本語表示になります。
英語レポート用に都度マニュアルで英語化するのも面倒ですので、当英語表示マクロを利用してください。
日、月、年を任意に選択してピボットテーブルを日、月、年の選択された組合せでグループ化し英語化するマクロもあります。

次のリンクからサンプルファイルをダウンロード :PivotTable_Group_en
 
データの入力規則リストのプルダウンメニュー選択の階層化
データ入力間違いを回避するためにプルダウンメニューは便利で簡単に設定できます。
一階層目プルダウンメニューで選ばれた項目に2階層目のプルダウンメニューが対応する階層化テクニックを紹介します。
2018/5/18:参照セル番地の間違いを修正


次のリンクからサンプルファイルをダウンロード :Validation_List_Dropdown_Cascade_r1
 
文字列データを結合するテクニック (関数でのテクニックを追加)
文字列データを結合するユーザー定義関数(マクロ)を使って、発注リストのベンダー毎の複数の注文番号を一つのデータに結合するテクニックです。 ピボットテーブル、番号テクニック と文字列を結合するユーザー定義関数を組み合わせた初歩的テクニックから完全マクロ(マクロは簡単ですがアルゴリズムが多少難しい)まで5種類のテクニックを紹介します。
ユーザー定義関数を組み合わせたテクニックはどのシート・セルにも展開できるメリットはあります。


次のリンクからサンプルファイルをダウンロード :Concatenate UDF Macro

VBAは面倒或いは手軽に関数だけでを希望の方に必見。 ピボットテーブルでデータを整理後に関数だけで文字列を結合して区切り記号も付けます。

次のリンクからサンプルファイルをダウンロード :Concatenate_Function

特定のシートをレポート用に別ファイルに出力するマクロ
上に掲載の「新旧レポートを比較し更新(変更)セルに色を付けるマクロ Level-3」のアウトプットを別のワークブックに出力するマクロ・テクニックです。
出力する際、シートにあった余計なマクロボタンなどを削除してプレーンな新規Excelファイルとしてレポート用に出力します。


次のリンクからサンプルファイルをダウンロード :Report_Output
 
設計図書の変更発行の横並びデータを縦並びに出力するマクロ
設計図書管理Excelデータの各図書の変更発行データは一般的に横並びデータ・テーブルにします。
変更がRev.10になることもあるのでデータ・テーブルは大変横が長くなり、レポートとして印刷するにも大変見にくいテーブルになってしまいます。
そこで、当マクロは各図書ごとに変更発行日付などのデータを縦並びにして、条件付き書式でピボットテーブル風に図書名など固有の情報は一行だけ表示し発行日付などのデータ全てを縦並びに表示し罫線も見やすく表示します。また、新規Excelファイルとしてレポート用にも出力出来ます。


次のリンクからサンプルファイルをダウンロード :Eng._Doc_Control_Vertical_Data_Arrange
 
複数条件でデータ検索・取得するEXCEL関数テクニック
MATCH関数とOFFSET関数を使って、2条件で、条件1が検査値と完全一致、条件2が検査値以下の最大の値が検索・取得する一般関数の例 (非配列関数)
複数検査値に一致する関数テクニックはインターネットで幾つか探せますが、このテクニックは見つかりませんでした。
このテクニックでも2個検査値に一致する検索・取得することはできます。

次のリンクからサンプルファイルをダウンロード :Index_Match_Multi-Criteria
 
タイムシートのEXCEL関数テクニック
タイムシートに入力する時間がきちんと入力されない、例えば9時始まりなのに8:20と入力されたりされたりする場合があります。
また、時間データの計算は通常の計算と違いますし、1時間をRounddownするとゼロになる浮動小数点誤差も発生したりします。さらに、タイムシートは色々なバリエーションがあるので万能のExcelシートを作るのは困難です。 思いつく下記バリエーションに対応したExcelファイルをアップしました。
年月選択で自動的にカレンダーを表示、週休日の設定、2か所の時間設定が可能、残業時間を30分単位或いは60分単位のいずれかに設定可能、フレックスに対応、昼休みを30分刻みの場合に対応、8:20の入力は8:30(残業30分毎の場合)或いは9:00(残業60分毎の場合)に切り上げ

次のリンクからサンプルファイルをダウンロード :Time Sheet
 
3次スプライン、線形、ラグランジェ、ラグランジェ改の補間
Excelユーザー定義関数にしていますので、便利に利用できます。(全て制御点を通ります。)
1.3次スプライン補間:Spline_interp(既知x, 既知y, x) スムーズな曲線を描きます。
2.線形補間:interp(既知x, 既知y, x) 比例計算で折れ線グラフの軌跡を描きます。
3.ラグランジェ補間:int_LaGrange(xRng, yRng, x) 開始点・終点付近で異常振動する場合があります。
4.ラグランジェ補間改:int_LaGrange改(xRng, yRng, x) 異常振動を少し緩和します。
ユーザー定義関数はデータの並び向きが縦、横のいずれにも対応しています。

3次スプライン補間とラグランジェ補間改は右記のWEBを参照し3次スプライン補間の式を変更しました。 Codezine
Rev1:Spline補間で、データ両端の追加データを固定値から補間値に変更

次のリンクからサンプルファイルをダウンロード :Spline_Interporation
 
モンテカルロ法で座標データから面積と体積の予測
1.Study-1 モンテカルロ法基礎 - 参照先:私の(数学)備忘録
2.Study-2 モンテカルロ法で山並み形状と下部四角部の合計面積を予測
3.Study-3 モンテカルロ法で山並み形状と下部立方部の合計体積を予測
線形補間のExcelユーザー定義関数でZ(x)高さを計算しモンテカルロで面積を推定しています。

次のリンクからサンプルファイルをダウンロード :Monte_Carlo_Method_Basic
 
双n次多項式(ラグランジェ)補間(改)
1.2変数関数のZ(x,y)座標の曲面プロット・データを元に任意のxi, yiのZ(xi,yi)を補間するExcelマクロです。
2.マクロの参照先:Excel Spreadsheet Function for Bicubic Interpolation
3.上記マクロは、極端な局面の山並み形状で補間を試すと外縁部が多少異常値になります。
4.そこで、2次元データの外側に線形補間データを追加することで異常値を緩和する改造マクロを紹介します。

次のリンクからサンプルファイルをダウンロード :Bicubic_Interpolation_UDF
 
結合セルの行高さ自動調整 超簡単テクニック
1.下図のExcelの各セル B4;D4、B5:D5が結合されていて、折り返し設定されています。
2.印刷範囲外のG列をB,C,D列の合計ピクセルと同じにし折り返し設定をします。そして、G列にB列データを参照する式G4:=B4、G5:=B5を入力します。
3.これだけで行高さが自動調整されます。セル内行数が多くなって自動で調整されない場合、書式の「行の高さ自動調整」をクリックしましょう。
次に行高さを大き目めに設定するテクニックです。
1.H列に、"A" +セル内改行(ALT + Enter)+"A"を入力するだけです。
2.これだけです。行高さを手作業で高めに設定したのに、気が付かないうちに操作を間違えて行高さが小さくなったなどの問題を回避できます。
AutoFit Row Height in Merge Cell

結合セルの各セルの幅を調べて合計値を計算するのも面倒な方に、図形を使う方法とVBAマクロのユーザー定義関数の例を紹介します。
VBAコマンドでセル幅の合計値を計算すると罫線の幅を含まないために結合セル幅の値が小さくなりますので、補正値を求めて処理するユーザー定義関数もあります。

次のリンクからサンプルファイルをダウンロード :Marged_Cell_Width.zip
 
コンポボックスを階層的に連動して2つの要素でピボットテーブルをフィルター表示
コンポボックス1のプルダウンリストで項目を選択すると、コンポボックス2のプルダウンリストは連動してコンポボックス1で選択された関連項目だけを表示します。
次に、コンポボックス2で項目を選択すると、2つの選択項目から絞り込まれた情報をピボットテーブルで表示します。

次のリンクからサンプルファイルをダウンロード :ComboBox_Synchronize
 
非表示の隠れた名前を表示させ削除するマクロ
他のExcelから一部シートをコピーすると元Excelの外部リンクとセル・範囲に付けられた名前も全て付いてきます。
そのために、その取り込んだファイルを開く時に時間が掛かったり外部リンクを読み込もうとしたりすることがあります。
外部リンクを削除し、不要な名前を削除しても解決できないことがあります。
時として、マージされたセルの見えなくなったセルに外部リンクが残っていたりもしますので注意が必要です。
以上の処理をしてもダメな場合、非表示の隠れた名前が原因であることが考えられます。昔から使いまわしてきたExcelによくあるケースです。
当ファイルの拡張子は"xlsm"でマクロを稼働できるExcelです。
対象のExcelを"xlsm"に変換することなく"xlsx"形式のままでも当マクロで隠れた名前を出現させて削除することが出来ます。。

次のリンクからサンプルファイルをダウンロード :Reveal_Hidden_Names_Macro
 
後日掲載予定
  
 

メインに戻る