結合セルの分類名は、結合範囲の左上にだけ保存されています。
そのまま検索すると、分類名が空欄の行を取りこぼします。
元の結合を残し、作業列で分類を補ってから、分類と項目の2条件で数値を参照します。
このページの例は、個人情報を含まない練習データで試せます。
練習ブック・CSV・コードをまとめたZIPをダウンロードして、元ファイルとは別のコピーで操作してください。
入力例:結合表と検索条件
「結合参照」シートはA1:E7が元表と作業列、I1:M6が検索結果です。
A2:A4を結合してA、A5:A7を結合してBを入れています。
| 行 | A列:分類 | B列:項目 | C列:数値 |
|---|---|---|---|
| 2 | A | あ | 10 |
| 3 | 結合内の空欄 | い | 20 |
| 4 | 結合内の空欄 | う | 0 |
| 5 | B | あ | 40 |
| 6 | 結合内の空欄 | い | 50 |
| 7 | 結合内の空欄 | う | 60 |
D列で分類を補い、E列で数値の有無を判定する
D2に次の式を入れてD7までコピーします。
A列の空欄は直前の分類を引き継ぎます。
最初のデータ行A2に分類名が入っていることが前提です。
=IF(A2<>"",A2,D1)E2には数値があれば1、なければ0となる式を入れ、E7までコピーします。
空欄や文字列の数字と、数値のゼロを区別します。
=IF(ISNUMBER(C2),1,0)検索結果を、該当なし・重複・値なしに分ける
I2に分類A、J2に項目あを入力します。
K2は一致件数、L2はそのうち数値が入った件数、M2は参照結果です。
次の3つの式を順番に入れます。
=COUNTIFS($D$2:$D$7,I2,$B$2:$B$7,J2)=COUNTIFS($D$2:$D$7,I2,$B$2:$B$7,J2,$E$2:$E$7,1)=IF(K2=0,"該当なし",IF(K2>1,"重複キー",IF(L2=0,"値なし",SUMIFS($C$2:$C$7,$D$2:$D$7,I2,$B$2:$B$7,J2))))この例の分類はA・B、項目はあ・い・うです。
COUNTIFSとSUMIFSの条件にはワイルドカードが使えるため、分類や項目として * や ? を扱う表にはそのまま転用しないでください。
表を拡張する場合は、すべての式の終端7を同じ行にそろえます。
確認結果と切り分け
| 条件 | 結果 |
|---|---|
| A/あ | 10 |
| A/う | 0(有効な数値) |
| B/い | 50 |
| A/え、C/あ | 該当なし |
| B3の「い」を「あ」に変える | A/あは重複キー |
| C2を空欄にする | A/あは値なし |
| C2に文字列の10を入れる | 数値ではないので値なし |
重複を最初の1件で済ませず、入力側で同じ分類・項目の行を確認します。
該当なしをゼロで置き換えると、元表の有効なゼロと区別できなくなります。
元に戻す
練習で変えたB3をい、C2を数値10に戻します。
作業列を外す場合はコピー側のD・E列と検索式を削除し、結合を含む元ファイルを残します。
2026年10月2日に、練習ブックの数式をArtifact Toolで計算し、CSVをPythonで検証しました。
Excelの実画面での操作、VBAのコンパイル・実行、Redmineへの実際の取り込みは未検証です。
関連記事・旧実装の参考資料
関連記事は用途の違いを確認して参照してください。
練習用ZIPのデータと、記事中のセル番地・コードをそろえています。



