• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルで複数シート間での重複データを避けるための方法)

エクセルで複数シート間での重複データを避ける方法

このQ&Aのポイント
  • エクセル2003を使用している場合、複数のシート間で重複データを避ける方法を知りたい。
  • Sheet1に検索値を入力し、他のシートからコードを引いてくる動作を行っているが、各教科のコードが重複しないようにしたい。
  • 具体的には、Sheet2-4において他の教科のコードが重複した場合に、重複を知らせるようなプログラムを作りたい。

質問者が選んだベストアンサー

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 回答番号:ANo.1、2です。  先程の回答で、Sheet1の4行目以下に数式を設定する事を、書き忘れておりました。  ですから、ANo.1、2の作業に引き続いて、Sheet1のA3~B3の範囲をコピーして、同じ列の4行目以下に貼り付けて下さい。

5goma
質問者

お礼

kagakusuki 様 ありがとうございました。 お蔭様で解決しました。 まだ、作業シートの色づけしか試していませんが成功しました。 面倒な内容にもかかわらず、回答字数制限を越えて丁寧に説明していただき大変助かりました。 ポイントだけではもったいない気持ちですが、大切に使わせていただきます。 簡単で恐縮ですが、お礼申し上げます。

その他の回答 (2)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 回答番号: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)
回答No.1

 今仮に、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にコードを入力する際に、重複コードの有無を知らせる方法に関しては、このサイトの入力文字数の制限を超えるため、次回の回答で述べさせて頂きます。

関連するQ&A

専門家に質問してみよう