可視セルへの貼り付け――見える順番とIDの対応を分けて考える

LWP | 可視セルへの貼り付け――見える順番とIDの対応を分けて考える

可視セルへの貼り付け――見える順番とIDの対応を分けて考える

フナさんとシャケモンが、フィルターで見える行と修正値の対応を確かめます。

ストーリー

フナさんは、照合で見つかった3件のエラーを直そうとしています。修正データのIDは分かっていますが、表の並び順は同じとは限りません。シャケモンと、表示・セル位置・データの対応を分けて考えます。表と会話は説明用の例です。

1 見えている3行と、実際のセル位置は違う

フィルター後も行2・5・8は元の位置に残り、非表示の行3のA02と20も保持される

図1|フィルターは表示を絞ります。行を削除して詰める機能ではありません。

2 可視セルを選んでも、対応表はできない

連続した3行2列のコピー元と、離れた三つの1行2列の貼り付け先を比較する

図2|選択範囲の形と、どのIDへ値を入れるかという対応は別の問題です。

3 同じ3件でも、順番で配ると全部ずれる

A04・A01・A03の修正値をA01・A03・A04へ位置で配ると、この例では三つとも誤対応になる

図3|この並びでは3件ともずれます。件数の一致だけでは対応を保証できません。

4 IDで結ぶと、並び順が違っても対応する

修正データを同じIDで照合し、A01を100、A03を300、A04を400へ直し、A02の20を保持する

図4|IDで修正値を探し、更新条件で対象を絞ります。

5 一致0件・1件・複数件で、判断を分ける

未一致は確認、一致1件は反映候補、一致2件以上は採用ルールを決めるまで保留する

図5|XLOOKUPが返した1件と、一意に決まった1件を区別します。

6 照合してから反映し、対象外も確かめる

元の値・修正候補・反映後を並べ、3件の修正値と対象外A02の20を確認する

図6|更新した行と、変えてはいけない行の両方を確認します。

7 Ctrl+Rを使うなら、値と対象2列を確認する

ID照合済みの補助列を値にし、左の補助列と右の反映先という2列を確認する

図7|Ctrl+Rは左端の内容を右へコピーします。ID照合を代行する操作ではありません。

8 方法を選ぶ前に、対応の保証を決める

ID検索・並べ替え・VBAやPower Query・同じ値の入力を、それぞれの保証条件とともに比較する

図8|IDも順序の保証もない場合は、書き込む前に対応を確認します。

まとめ

表示されている行数が同じでも、修正データと同じ順番とは限りません。共通するIDがあれば、IDの表記と一致件数を確認して修正候補を作り、更新条件を満たす行だけへ反映します。未一致・重複は保留し、反映後は対象外の正常値も確認します。

並べ替えで対応させる場合は表全体を一緒に動かし、件数・順序・元の順序へ戻す方法を確認します。フィルターされた複数領域への操作は、対象環境で小さな範囲から確かめます。

今回の仕掛け

会計の照合経験を持つフナさんが「正常値を残す」「件数だけでは足りない」という条件を整理し、シャケモンがExcelの選択・検索・コピーを分けて説明します。操作名を覚える前に、表示・位置・対応の構造を図で捉える構成です。

今回のソースコードのサンプル

元表には「ID」「元の値」、修正表というExcelテーブルには「ID」「修正値」がある前提です。IDは文字列として表記をそろえ、COUNTIFでの比較とIDの業務上の一致が同じ意味になるデータを使います。

サンプルコード 元の正常値を保持する補助列

01

=IF(ISNA([@元の値]),IF(COUNTIF(修正表[ID],[@ID])=1,XLOOKUP([@ID],修正表[ID],修正表[修正値]),"要確認"),[@元の値])

関数の説明

ISNAは元の値が#N/Aかを判定し、COUNTIFは修正表での一致件数を数えます。XLOOKUPは対応する修正値を返します。IFで、対象外の元の値と「要確認」を分けます。

コードの説明

元の値が#N/Aで、一致件数が1件の場合だけ修正値を候補にします。未一致・重複は「要確認」、正常値は元の値を返します。XLOOKUP自体に重複警告の機能はありません。

入力・概要

元表はA01=#N/A、A02=20、A03=#N/A、A04=#N/A。修正表はA04=400、A01=100、A03=300です。XLOOKUPに対応したExcelを使います。Excel 2016・2019では、この例をそのまま使えません。

結果

期待する補助列は100、20、300、400です。この掲載式は元ネタにある例を引き継いだもので、今回の制作ではExcelで実行していません。

読むポイント

「要確認」が残る間は反映しません。これは補助列の式で、元の列を直接更新する式ではありません。修正値そのものの妥当性も別に確認します。値を反映する場合は、計算済みの補助列を値にしてから対象範囲を確認します。

出典メモ

元ネタ「Excelフィルター可視セル貼り付け問題」を、8枚の図版と短い説明に構成しました。表の値は説明用で、Excel操作の実測結果や実際の警告画面ではありません。

可視セルのコピーと貼り付けの挙動はMicrosoft:Copy visible cells only、XLOOKUPの検索と対応版はMicrosoft:XLOOKUP functionを参照しました。右方向へのコピーが内容と書式を扱うことはMicrosoft Learn:Range.FillRightを参照しました。

Copyright © 2026 LWP 山中 一弘

本資料は、出典を明記いただければ、商用・非商用を問わず、ご自由に複製・改変・再配布していただけます。なお、著作権表示は改変せず、そのまま記載してご利用くださいますようお願いいたします。