アプリ版:「スタンプのみでお礼する」機能のリリースについて

次のようなデータが入力されているとします。

A列/B列/C列/D列/E列/F列
1行:都道府県/市区町村/data1/check1/data2/check2
2行:東京/新宿/1/""/1/""
3行:東京/新宿/2/""/2/"重複"
4行:東京/新宿/3/""/3/""
5行:東京/渋谷/1/重複/4/""
6行:東京/渋谷/2/""/5/""
7行:東京/渋谷/3/""/6/""
8行:東京/渋谷/4/""/2/"重複"
9行:東京/渋谷/1/重複/7/""

ここで、check1は、
「都道府県」のグループでdata1に重複があれば、「重複」表示をさせます。
また、check2は、
「市区町村」のグループでdata2に重複があれば、「重複」表示をさせます。

例えば、
セルD2=IF(COUNTIF($C$2:$C$4,$C$2:$C$4)>1,"重複","")
セルF2=IF(COUNTIF($E$2:$E$9,$E$2:$E$9)>1,"重複","")
というように関数を入力して、2行目以下にコピペすればいいのですが、
実際は1万行以上のデータがあり、「都道府県」「市区町村」も多くのグループがあるため
いちいち範囲を指定するのも大変です。

そこで、上記関数のように手動で範囲を指定しなくても、
自動で範囲指定をして重複チェックができる良い方法があれば教えてください。

できれば関数がいいのですが、VBAでも構いません。

ご教授のほど、よろしくお願いします。

A 回答 (1件)

D2:


=IF(SUMPRODUCT(($A$1:$A$10000=A2)*($C$1:$C$10000=C2))-1,"重複","")
のようにして計算は可能ですが,現実には1万行ものデータをこの手のやり口で計算させると重すぎて全く役に立ちません。

G列に
G2:
=A2&"-"&C2
H列に
H2:
=B2&"-"&E2
のように作業列を配置し
D2:
=IF(COUNTIF(G:G,G2)>1,"重複","")
F2:
=IF(COUNTIF(H:H,H2)>1,"重複","")
のように,少し丁寧に計算すれば必ず結果を得られます。





#参考
ご利用のエクセルのバージョンがご質問に書かれていませんが,Excel2007以降では作業列無しにCOUNTIFS関数を使うことでもだいぶマシに計算できます。
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございました。
希望の結果が得られました。

お礼日時:2011/06/12 20:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!