スプレッドシートがあり、2 つの列を一致させる必要があります。ただし、「ダブ コード」は 3600 行で、「コード 2」は 1100 行です。画像でわかるように、それらはすべて同じコードを持っていますが、変更が始まる場所も確認できます。コードをすべて並べる必要があるので、隙間が見えます。私はすでにそれらをすべてアルファベット順に並べており、その「コード 2」は「鳩コード」と一致する必要があります。
2 に答える
上記の解決策ではあまりにも多くのシャントが発生し、vba を使用できない場合は、別の方法があります。最初の列をコピーし、「重複の削除」を使用します。これで索引リストができました。その右側の列に 1 から x までの数字を入れてください。
2 つのリストの間に列を挿入し、2 つ目のリストの右側に挿入します。
インデックス リストが F にあり、数字が G にあると仮定すると、次の式を大きなリストの最初のセルの右側のセルに入力します: =VLOOKUP(A2,$F$2:$G$500,2,FALSE)
それに応じて範囲を調整します。短いリストの最初のセルの右側のセルに同じ数式を入れます。もちろん、A2 の代わりに C2 を使用します。両方の式をリストの最後にコピーします。
これで、両方の列のすべての行にインデックスが作成されました。データの並べ替えを使用してそれらを一致させることができますが、そのためにはインデックス列にダミーを追加する必要があります。
次の数式を基本インデックス リストの右側のセルに入力します: =countif(B:B,G2) そして、その右側のセルに次の数式を入力します: =countif(D:D,G2)
これで、両方のリストで各レコードが何回発生したかがわかります。両方の数式が同じ結果になるように、手動で数字を追加するだけです。あなたはそれを本当に速くできるはずです。最初の列で 2 回使用され、2 番目の列では使用されていない 200 のレコードがある場合は、それらの 200 レコードのインデックスをコピーして 2 回貼り付けます。countif は自動的に更新されます。追加の列を使用して 2 つのカウントの差を計算し、基本インデックス リストでデータの並べ替えを使用して差を並べ替えることができます。
その後、データソートを使用してください。
私の指示が十分に明確であれば、これに 10 分以上かかることはありません。
編集: ここに例があります: http://img14.imageshack.us/img14/6366/k8pg.jpg
=INDIRECT("A"&ROW())<>INDIRECT("B"&ROW())
VBA を使用しない場合、ヘルパー列などに式を追加することで (不一致の数が限られている列に対して) これを行います。下向きに作業すると、TRUE が表示されるたびに、適切な列が適切にシャントされます。しかし、それは 1100 行でしか実行できない可能性があります。