検索結果が0件でも、「最後まで調べた0件」と「途中で止まった0件」では意味が違います。明細を減らして再検索する前に、結果の状態と対象にした範囲を確認すると、存在する組み合わせを見落とす判断を減らせます。
この記事では、ITtripが提供する「合計さがし」を使う手順も紹介します。金額の組み合わせを探す道具として使い、元の明細や取引の内容は手元の資料で確認してください。
最初に、完了したかを読む
| 表示される状態 | 分かること | 次の行動 |
|---|---|---|
| 検索完了・候補あり | 貼り付けた範囲で一致候補が見つかった | 明細内容と元資料を比較する |
| 一致する組み合わせはありません | 完了した検索範囲では一致候補がない | 対象の値・単位・範囲を確認する |
| 計算打ち切り・0候補 | 途中までは候補が見つかっていない | 不存在と決めず、条件を再確認する |
| 計算打ち切り・候補あり | 途中までに見つかった候補がある | 表示候補を使いつつ、未確認範囲を残す |
合計さがしの初期版は30件までの整数を対象にし、約5秒・100候補を上限にします。手動停止も途中の結果です。「候補がない」という結論は、完了した範囲に限って読みます。
50,001円の「一致なし」を検算する
合計さがしの架空請求書サンプル8件は、12,000、18,000、20,000、31,000、19,000、45,000、5,000、72,000円です。この一覧の目標を50,001円にして検索すると、「一致する組み合わせはありません」「すべての組み合わせを確認しました。」と表示されます。
| 確認するもの | この例の値・意味 |
|---|---|
| 貼り付けた金額 | 8件すべてが1,000円の倍数 |
| 目標金額 | 50,001円で、1,000円の倍数ではない |
| 検算 | 1,000円の倍数をいくつ足しても50,001円にはならない |
この例は、金額の性質からも一致しないことを確かめられます。目標を50,000円に戻すと3候補があるので、目標の1円の違いも結果を変えます。一方、一般の一覧を途中で止めた場合は、全組み合わせを確認した証拠がありません。途中の0件を「一致なし」と扱わない判断は、明細が増えたときも同じです。

入力に原因がないか、順番に確認する
- 目標と明細の単位が同じか。円と千円、税込と税抜を混ぜていないか。
- 小計・総計の行を、個別明細と一緒に含めていないか。
- 対象の相手や期間が抜けていないか。Excelのフィルターで非表示の行がないか。
- 数字に見える文字列や小数が混ざっていないか。値を確認し、エラー行を黙って0に変えていないか。
- 負の調整額や0円の明細が元資料どおり残っているか。
必要な明細が見当たらないときは、フィルターをクリアまたは削除する(Microsoft)に従って元のExcelのフィルターを確認します。文字列の数値は文字列として保存されている数値を数値に変換する(Microsoft)、前処理の文字確認はPower Query で余分なスペースや改行を整えるが参考になります。
30件を超える一覧を、行順で半分にしない
たとえば600円と400円が別々のグループに入ると、それぞれを1,000円で探しても0件です。しかし2行を同じ検索範囲に入れれば600+400=1,000になります。各グループで一致しないことは、全体で一致しないことの証明になりません。
グループA:600 → 1,000には一致しない
グループB:400 → 1,000には一致しない
全体:600 + 400 = 1,000
無作為な30件ずつの分割、上から30件だけの抽出、同じ金額の重複削除も、候補を欠くおそれがあります。初期版の上限を超える場合は、データの意味から対象範囲を決めるか、全体を扱える別の方法を選びます。
根拠のある絞り込みを記録する
| 絞る条件の例 | 残す確認 |
|---|---|
| 入金対象の取引先が資料で特定できる | 対象名と確認した資料 |
| 対象期間が連絡明細で指定されている | 期間とその根拠 |
| 処理済み明細を対象外にする | 処理済みと確認した記録 |
| 条件が分からず件数だけ減らす | 検索範囲を限定しただけと記し、全体の結論を出さない |
Excelのフィルター機能については範囲またはテーブルのデータをフィルター処理する(Microsoft)、繰り返し使う前処理にはPower Query のフィルター・行の保持・削除を学ぶを参照できます。負の金額があると、目標より大きい金額も一致候補に含まれ得るため、金額の大小だけで除外しないようにします。
同じ条件で再検索し、結果と範囲をセットで残す
- 確認した対象範囲を30件以内の一覧にし、元の行番号と摘要を残します。
- 目標金額を入力して検索し、完了か打ち切りかを確認します。
- 候補があれば元資料と比較し、必要な候補をコピーします。
- 候補の有無と一緒に、対象条件、除外理由、途中で止まった範囲を確認表に残します。
0円30件・目標0円では、100候補の打ち切りを確認する
完了0件の例とは別に、架空の0円を30件貼り付け、目標金額を0にする例を考えます。0円の行を加えても合計が変わらないため、含める行が違う候補が増えます。空の組み合わせを除いても、2の30乗-1=1,073,741,823通りあります。
- 金額だけの一覧に0を30行貼り付け、読み取り件数が30件であることを確認します。
- 目標金額に0を入力して検索します。
- 100候補の上限に達した場合は「計算打ち切り」と、ほかにも候補がある可能性を示す説明を確認します。
- 100候補を全候補の一覧と読み替えず、元の明細を比較するための途中結果として扱います。

この候補数の上限による打ち切りを、手動停止の0候補や完了0件の画面と取り違えないでください。端末の処理が約5秒に達するなど、別の理由で先に止まった場合も、実際に表示された理由と件数を読みます。
存在しない金額の組み合わせを作ることも、意味のある明細を件数だけで捨てることも、照合の解決にはなりません。検索の道具が返した候補と、対象資料を確かめる作業を組み合わせて使いましょう。

コメント