- ベストアンサー
エクセルで複数シート間での重複データを避ける方法
- エクセル2003を使用している場合、複数のシート間で重複データを避ける方法を知りたい。
- Sheet1に検索値を入力し、他のシートからコードを引いてくる動作を行っているが、各教科のコードが重複しないようにしたい。
- 具体的には、Sheet2-4において他の教科のコードが重複した場合に、重複を知らせるようなプログラムを作りたい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
回答番号:ANo.1、2です。 先程の回答で、Sheet1の4行目以下に数式を設定する事を、書き忘れておりました。 ですから、ANo.1、2の作業に引き続いて、Sheet1のA3~B3の範囲をコピーして、同じ列の4行目以下に貼り付けて下さい。
その他の回答 (2)
- kagakusuki
- ベストアンサー率51% (2610/5101)
回答番号:ANo.1に追加して、 以下の操作を行って、Sheet2のB3セルに条件付き書式を設定して下さい。 Sheet2のB3セルをクリックして選択 ↓ メニューの[書式]をクリック ↓ 現れた選択肢の中にある[条件付き書式]をクリック ↓ 現れた「条件付き書式の設定」ウィンドウの左端の欄をクリック ↓ 現れた選択肢の中にある「数式が」をクリック ↓ 「条件付き書式の設定」ウィンドウの右端の欄に次の数式を入力 =COUNTIF(OFFSET(INDIRECT("Sheet0!1:1"),MATCH($A3,INDIRECT("Sheet0!A:A"),0)-1,),$B3)>1 ↓ 「条件付き書式の設定」ウィンドウの[書式]ボタンをクリック ↓ 現れた「セルの書式設定」ウィンドウの[パターン]タグをクリック ↓ 赤色の四角形をクリック ↓ 「セルの書式設定」ウィンドウの[OK]ボタンをクリック ↓ 「条件付き書式の設定」ウィンドウの[OK]ボタンをクリック 次に、以下の操作を行って、Sheet2のB3セルに入力規則を設定して下さい。 Sheet2のB3セルをクリックして選択 ↓ メニューの[データ]をクリック ↓ 現れた選択肢の中にある[入力規則]をクリック ↓ 現れた「データの入力規則」ウィンドウの[設定]タグをクリック ↓ 「入力値の種類」欄をクリック ↓ 現れた選択肢の中にある「ユーザー設定」をクリック ↓ 「数式」欄に次の数式を入力 =COUNTIF(OFFSET(INDIRECT("Sheet0!1:1"),MATCH($A3,INDIRECT("Sheet0!A:A"),0)-1,),$B3)=1 ↓ 「データの入力規則」ウィンドウの[OK]ボタンをクリック 次に、以下の操作を行って、Sheet2のB3セルに入力規則を設定して下さい。 Sheet2のB3セルをクリックして選択 ↓ メニューの[データ]をクリック ↓ 現れた選択肢の中にある[入力規則]をクリック ↓ 現れた「データの入力規則」ウィンドウの[設定]タグをクリック ↓ 「入力値の種類」欄をクリック ↓ 現れた選択肢の中にある「ユーザー設定」をクリック ↓ 「数式」欄に次の数式を入力 =COUNTIF(OFFSET(INDIRECT("Sheet0!1:1"),MATCH($A3,INDIRECT("Sheet0!A:A"),0)-1,),$B3)=1 ↓ 「データの入力規則」ウィンドウの[OK]ボタンをクリック 次に、以下の操作を行って、Sheet2のB3セルに設定した条件付き書式と入力規則を、Sheet2~Sheet4のコードを入力するセルにコピーして下さい。 Sheet2のB3セルを右クリック ↓ 現れた選択肢の中にある[コピー]をクリック ↓ キーボードの[Shift]キーを押しながらBookウィンドウの「Sheet4」見出しをクリック ↓ B3セルをクリック ↓ キーボードの[Shift]キーを押しながら、B列の(コードを入力する予定の範囲をカバーするのに充分な範囲の)最も下のセルをクリック ↓ 黒い太枠で囲まれた範囲の内側を右クリック ↓ 現れた選択肢の中にある[形式を選択して貼り付け]をクリック ↓ 現れた「形式を選択して貼り付け」ウィンドウの中にある「書式」と記されている箇所にチェックを入れる ↓ 「形式を選択して貼り付け」ウィンドウの[OK]ボタンをクリック ↓ 黒い太枠で囲まれた範囲の内側を右クリック ↓ 現れた選択肢の中にある[形式を選択して貼り付け]をクリック ↓ 現れた「形式を選択して貼り付け」ウィンドウの中にある「入力規則」と記されている箇所にチェックを入れる ↓ 「形式を選択して貼り付け」ウィンドウの[OK]ボタンをクリック 後は、各教科のSheetに教科の名前と個人の名前、そしてコードを入力して行き、重複コードを入力しようとすると 「入力した値は正しくありません。」 という表示が現れて入力操作が停止します。 又、既に重複した値が入力されていた場合には、各教科のSheetとSheet0において、重複したデータが存在しているセルの色が赤くなります。
- kagakusuki
- ベストアンサー率51% (2610/5101)
今仮に、Sheet2~Sheet4の A1セルに「教科」 A2セルに「氏名」 B2セルに「コード」 B1セルに国語等の教科名が入力されていて、 A列の3行目以下に個人の名前 B列の3行目以下に個人毎のコード が入力されているものとします。 まず、作業用Sheet兼一覧表として、Sheet0を設けます。 そして、Sheet0の1行目のB列から右に向かって、「Sheet2」等の各教科毎のSheet名を入力して下さい。(「」は不要) 次に、Sheet0のB2セルに次の数式を入力して下さい。 =IF(ISTEXT(INDIRECT(B$1&"!B1")),INDIRECT(B$1&"!B1"),"") 次に、Sheet0のB3セルに次の数式を入力して下さい。 =IF(OR(B$2="",$A3=""),"",IF(ISNUMBER(VLOOKUP($A3,INDIRECT(B$1&"!A:B"),2,0)),VLOOKUP($A3,INDIRECT(B$1&"!A:B"),2,0),"")) 次に、以下の操作を行って、Sheet0のB3セルに条件付き書式を設定して下さい。 Sheet0のB3セルをクリックして選択 ↓ メニューの[書式]をクリック ↓ 現れた選択肢の中にある[条件付き書式]をクリック ↓ 現れた「条件付き書式の設定」ウィンドウの左端の欄をクリック ↓ 現れた選択肢の中にある「数式が」をクリック ↓ 「条件付き書式の設定」ウィンドウの右端の欄に次の数式を入力 =AND(B3<>"",COUNTIF(3:3,B3)>1) ↓ 「条件付き書式の設定」ウィンドウの[書式]ボタンをクリック ↓ 現れた「セルの書式設定」ウィンドウの[パターン]タグをクリック ↓ 赤色の四角形をクリック ↓ 「セルの書式設定」ウィンドウの[OK]ボタンをクリック ↓ 「条件付き書式の設定」ウィンドウの[OK]ボタンをクリック 次に、Sheet0のB2~B3の範囲をコピーして、同じ行のC列から右に向かって、教科の数だけ貼り付けて下さい。 次に、Sheet0の3行目を範囲コピーして、4行目以下に貼り付けて下さい。 そして、Sheet0のA3以下に、各個人の名前を、漏れなく入力して下さい。 次に、Sheet1の A2セルに「教科」 B2セルに「コード」 と入力して下さい。 次に、Sheet1のA3セルに次の数式を入力して下さい。 =INDEX(Sheet0!$2:$2,ROWS(Sheet1!$1:2)) 次に、Sheet1のB3セルに次の数式を入力して下さい。 =IF(OR($A$1="",$A3=""),"",IF(COUNTIF(Sheet0!$A:$A,$A$1)=0,"該当者無し",VLOOKUP($A$1,Sheet0!$A:$Z,MATCH($A3,Sheet0!$2:$2,0)))) これだけでも、Sheet0において、重複したコードが表示されているセルの色が赤くなりますから、判別は出来ます。 尚、各教科毎のSheetにコードを入力する際に、重複コードの有無を知らせる方法に関しては、このサイトの入力文字数の制限を超えるため、次回の回答で述べさせて頂きます。
お礼
kagakusuki 様 ありがとうございました。 お蔭様で解決しました。 まだ、作業シートの色づけしか試していませんが成功しました。 面倒な内容にもかかわらず、回答字数制限を越えて丁寧に説明していただき大変助かりました。 ポイントだけではもったいない気持ちですが、大切に使わせていただきます。 簡単で恐縮ですが、お礼申し上げます。