Sumifs関数入力を終えたところから説明を再開する前に、まずは前回定義した用語を整理。

列についても以下のように定義する。

さて、前回の続きで、下記は前回の最終画像。
 
ここで準備マクロを使用する。
 
(1)準備マクロ
「kcr_準備_Sumifs集計表入力サポート_ver9」を実行
 
(2)集計タイトル順指定行の数字の小さい順に行タイトルデータ列と列タイトルデータ列を並び変えた上で、集計表の行タイトルと列タイトルの各要素を集計タイトル行の下に書き出す。
(1)のマクロを実行すると下記の状態になるので、簡単にどんな処理をしているかを説明すると、集計タイトル行あるいは、パラメータ行が示すデータ参照元のデータ範囲を列毎にコピーし、貼り付ける。その後、貼り付けた複数の行タイトル(あるいは、列タイトル)のデータをまとめて、重複削除を実行する。
(※この部分の詳細はマクロの処理の過程をステップ実行させて取った画像で説明を用意した。)

マクロ実行前にSumifs関数出力行のセル選択範囲を重複削除したデータの最終行の一つ下のセルまでResizeメセッドを使って、拡張する。
 
(3)「「kcr_準備_Sumifs集計表入力サポート_ver9」を実行
集計表入力サポート_ver9」を実行する。
このマクロはすでに、126号~128号で説明済のもの。
 
(4)マクロ実行後
1505431089653.png

(5)Sumifs関数の式の表示部分がわかるように拡大
 
 集計タイトル行のタイトル名の入っているセルに、下記のように罫線と色をつけておくと、集計表(の元)に反映されメリハリがついて良い。下記の5画像参照。
集計タイトル行に書式設定する。

Sumifs関数出力行のSumifs関数対象範囲を選択
 
「kcr_Sumifs集計表入力サポート_ver9」を実行
(下記は実行後の画像)

 
「kcr_準備_Sumifs集計表入力サポート_ver9」を実行
 
集計表(の元)が出来上がる。
 
 ここで、集計表(の元)に、Sumifs関数が入力されているセルが E8 から G18 に移る。そこで「kcr_Sumifs集計表入力サポート_ver9」を実行後のセル・行の呼び方を以下の様に再定義する。

これまで、Sumifs関数出力セルと呼んでいたセルは、「基点セル」と呼び、その行を「基点行」とする。この基点セルと基点行の呼び方は最初にSumifs関数の入力をする時から使うと説明がしやすくなる。今後はこの呼び方をSumifs関数を入力作業を始めた時点から使用していきたい。
集計表(の元)で Sumifs関数が出力しているセルは、「集計表Sumifs関数出力セル」とする。


さらに、
「kcr_Sumifs関数入力サポート_ver9」を実行する際に選択している範囲を「Sumifs関数入力開始選択範囲」
「kcr_準備_Sumifs集計表入力サポート_ver9」を実行する際に選択している範囲を「準備マクロ使用時選択範囲」、
「kcr_Sumifs集計表入力サポート_ver9」を実行する際に選択している範囲をSumifs集計表入力開始選択範囲」
とする。これらは、実行時点で選択範囲が過わっと行くので、画像は用意せず名称のみを記載した。

最後に、上記(2)で述べた準備マクロの処理過程の詳細をステップ実行させて取った画像によるで説明で準備マクロの説明を絞める。

(1)-A
準備マクロ開始時の上記の(1)をステップインで実行

(1)-B
Sumifs関数の参照シートからデータをコピーし、条件パラメーター列に貼付。
尚、このコピー貼付にはデータ行が特定されている必要があり、そのため、行指定セルにデータが無い場合は、準備マクロは処理を行わないしようとなっている。

(1)-C
すべての集計行タイトルと集計列タイトルのデータがコピーされた後。

(1)-D
集計列データに対し、重複削除を実行する。
下記の画像では集計列データを実際に選択しているが、この仕様は試作版のもので、最終の準備マクロver9では、選択しないで重複削除する仕様となっている。試作版の方が説明がスムーズのため、ここでは、試作版を元に説明することにした。
当該(1)-Dの下記の画像から、(1)-Jまでの画像で選択範囲は、準備マクロver9の最終版では、上記(1)-Cのセル選択範囲から変わることなく、処理が進む。


(1)-E
重複削除された後の状態。

(1)-F
集計列タイトルに対し同様に重複削除を行う。

(1)-G
重複削除する前のデータ行までのセル範囲をLAND選択し、番地データを取得し、重複削除後のデータ行を特定する。

(1)-I
上記LAND選択の最下行から、データがあるか確認していく。画像では27行目が確認対象行。

(1)-J
上記から1行デクリメントして、26行目をデータがあるかを確認。

(1)-K
12行目でデータがあることが特定される。

(1)-L
データの最下行の一つ下の行まで、マクロ実行前のSumifs関数出力行のセル選択範囲を拡張する。

以上で、準備マクロの処理過程の詳細説明は終わり。

次回は準備マクロの試作版をアップ予定。
尚、文字数の関係で説明し切れていない部分があるので、ご了承のほど。

つづく

©2017 みさき式エクセルマクロ

あなたもスタンプをGETしよう