[[20070901151610]] 『指定したセルで条件が一致しなかったらエラー表示』(のんかる) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『指定したセルで条件が一致しなかったらエラー表示』(のんかる)

  

             ★  ★  ★
   -----------------------------------
           | A  |  B  |  C |
   -----------------------------------
   |1|(1時限) |国語|算数|理科|
       ------------------------
   |2|     |山下|山本|山根|
 ------------------------------------
   |3|(2時限)|算数|社会|道徳|
       ------------------------
   |4|     |阪口|山本|山根|
 ------------------------------------
   |5|(3時限)|算数|社会|道徳|
       ------------------------
   |6|     |山下|山本|山根|
  ------------------------------------

 と、こういう表があるのですが、特定のセル
 つまりA2 A4 A6のところにある、名前が重複してる場合に
 ★マークのセルに「重複してます!」という表示、または
エラー表示が出るようにしたいのですが、どのように
すればよろしいでしょうか?知識不足なのですが
精一杯やってみたのですがダメでした。どなたか
何卒宜しくお願い致します。
 


 ★マークのセルのアドレスがA0?
 表の構成が理解できないのですが,
 A列の場合,A2="山下",A4="阪口",A6="山下",の場合,エラー表示したいセルに
 =IF(OR(A2=A4,A2=A6,A4=A6),"重複してます!","")
 (tomo)

 ありがとうございます。
時間割表で、担当を振り分ける作業がしたいのです。
(A列ですが、)実際は山下や阪口やそれ以外に名前がいっぱい出てくるのです。
その中で山下をA列で重複してしまうとまずいので
それをエラー表示して修正したいのです。
tomoさんがかきこんでくださった A2=A4 A2=A6・・・とかいう数式は
そういう意味になるのでしょうか?
すみません、なにぶんウトいのでお許しください。

 入力規則のユーザー定義で「=COUNTIF(B:B,B1)=1」などとして、
 重複入力できないようにしてはいかがでしょうか?
 Excelの「入力規則」でデータの重複をチェックする 
http://arena.nikkeibp.co.jp/article/tec/excel2/20061121/119814/

 面倒ですが、
 =IF(OR(COUNTIF(B$1:B$6,B2)>1,COUNTIF(B$1:B$6,B4)>1,COUNTIF($B$1:$B$6,B6)>1),"重複してます!","")
 で、表示は出来ると思います

 でも、どれが重複しているか分からないですよね?
 条件付書式で「数式が」「=COUNTIF(B$1:B$6,B2)>1」「好みの書式設定」
 などとして、重複している箇所に色を付けるなど好みの書式設定にしてみてはいかがでしょうか?
 (e2qw)条件付き書式
http://www.excel.studio-kazu.jp/lib/e2qw/e2qw.html

 (Ohagi)

 時間割の表の範囲等,もう少し正確な情報を提示していただけると,
 もっと具体的にアドバイスが出来るのですが,作業セルを用意してよければ,こんな方法もあります。

 表記の表に従い、時間割の最終行が6行目,8行目以降を作業セルとして
 D8 = "山下",D9 = "阪口",D10 = "山本",・・・,と担当者を連続記入
 A8 = IF(COUNTIF(A$1:A$6,$D8)>1,重複してます!","")
 後はコピペで!

 ご参考までに。 (tomo)

 担当の一覧表はあるのでしょうから
 そこで確認し、結果を1行目に反映させる
 と言う方法はどうでしょう。
 一覧表がF列から、時間割の表範囲を20列までと想定し
	[A]	[B]	[C]	[D]	[E]	[F]	[G]	[H]	[I]
[1]		★	★	★		担当	A	B	C
[2]		A	B	C		阪口	1	0	0
[3]	1時限	国語	算数	理科		山下	2	0	0
[4]		山下	山本	山根		山根	0	0	3
[5]	2時限	算数	社会	道徳		山本	0	3	0
[6]		阪口	山本	山根					
[7]	3時限	算数	社会	道徳					
[8]		山下	山本	山根					
 B1
=IF(MAX(G:G)>1,"★","")
 として、横にコピー
 G3
=COUNTIF(B$2:B$20,$F2)
 として、行列にコピー。

 (HANA)

	[A]	[B]	[C]	[D]		
[1]		★	★	★		
[2]		A	B	C		
[3]	1時限	国語	算数	理科		
[4]		山下	山本	山根		
[5]	2時限	算数	社会	道徳		
[6]		阪口	山本	山根					
[7]	3時限	算数	社会	道徳					
[8]		山下	山本	山根

皆さんありがとうございます。
例えばB列で1時限めの国語に山下とうちこんで担当を書き込んでいく作業をしていくと
3時限目のところに気づかないでまた、山下をかきこんでしまった!といった場合に
★があるB1のセルに「重複してます!」というエラー表示が出るものをつくりたいのです。
何卒宜しくお願い致します。

tomoさん>作業セルという意味が理解できてないので・・・作業セルってなんですか?

HANAさん>担当の一覧表はありません。でも作業効率を考えると作った方がもっとわかりやすく
    作成できますか?


 上記のような表を提示いていただくと、分かりやすいです。
 初めに表の構成が理解できませんと言ったのですが・・・

 基本的にHANAさんとやっていることは同じです。
 私のほうは、一覧表を10行目以降に作成する方法で、
 HANAさんのは、F列以降に作成しています。
 すなわち、作業セル=担当者一覧を指します。(HANAさんの表でいう、F1:I5の範囲の部分)
 (表現がよろしくなかったですね)

 担当一覧表を作成した方がいいかについてですが、作成した方が分かり易いです。
 なくても出来なくはないですが、数式が長くなり、後から修正が必要になった場合に大変になります。

 何となく小学生か中学生の時間割と思えるのですが、その場合、月〜金、1時間目〜5(6?)時間目は
 考慮しないのでしょうか?
 後からこれらを修正しようと考えているのであれば、尚更一覧表を作った方がいいと思いますよ!

 (tomo)


 すみません。ありがとうございます。
はいその通りです。まだ下に6時間目までの表が続きます。
ちなみにこれは高校の分で、試験期間に使うもので作りたいのです。
それで、一覧表をつくることについてですが
実は名前は50人程度ありますので、それでも一覧表を作った方がいいのでしょうか?
何卒宜しくお願い致します。


 厳密に言えば6時間程度であれば必要ありません。
 ただし、下記のように数式が長くなります。(Ohagiさん式の応用です)
 =IF(OR(COUNTIF(B:B,B4)>1,COUNTIF(B:B,B6)>1,COUNTIF(B:B,B8)>1,COUNTIF(B:B,B10)>1,COUNTIF(B:B,B12)>1,COUNTIF(B:B,B14)>1),"重複してます!","")
 一覧表を作成しておけば、重複した担当者の名前と担当数の比較が確認出来る利点がある程度ですが・・・
 後は、お好みの方を選んでください。
 (tomo)

───┘


すみません、やっぱりできませんでした。
どうも数式が長すぎるそうで、表示されません。
(≧o≦)ノ~''ありがとうございましたぁ♪

 -----------------------------------
      | A     |  B  |  C |   D 
   -----------------------------------
   |1|(1時限) |国語|算数|理科|
       ------------------------
   |2|     |山下|山本|山根|
 ------------------------------------
   |3|(2時限)|算数|社会|道徳|
       ------------------------
   |4|     |阪口|山本|山根|
 ------------------------------------
   |5|(3時限)|算数|社会|道徳|
       ------------------------
   |6|     |山下|山本|山根|
  ------------------------------------

 2,4,6行目を選択して、 B2をアクティブセルにして
 条件付き書式 数式が =COUNTIF(B$2:B$6,B2)>1 書式は御自由に


 ありがとうございます。
条件書式のこれだと、山下にしか反応しないので
B列のなかで例えば阪口さんがこの表にはないですが
続きがあったとして4時限目のところで重複してたりすると
反応しないという結果になってしまいます。
つまりB列のなかで誰の名前であっても重複してたら
重複していることがわかるエラー表示もしくは
表記されることを希望いたします。
何卒宜しくお願い致します。

	[A]	[B]	[C]	[D]
[ 1]		★	★	★
[ 2]		A	B	C
[ 3]	1時限	国語	算数	理科
[ 4]		山下	山本	山根
[ 5]	2時限	算数	社会	道徳
[ 6]		阪口	山本	山根
[ 7]	3時限	算数	社会	道徳
[ 8]		山下	山本	山根
[ 9]	4時限	国語	算数	理科
[10]		山下	山本	山根
[11]	5時限	算数	社会	道徳
[12]		阪口	山本	山根
[13]	6時限	算数	社会	道徳
[14]		山下	山本	山根
 ↑の場合、
 B1 = =IF(OR(COUNTIF(B:B,B4)>1,COUNTIF(B:B,B6)>1,COUNTIF(B:B,B8)>1,COUNTIF(B:B,B10)>1,COUNTIF(B:B,B12)>1,COUNTIF(B:B,B14)>1),"重複してます!","")
 で問題ないはずですが・・・ ("重複してます!"と表示されました)
 セル位置がずれてませんか?
 (tomo)


ありがとうございます。
しかし入力した数式はただしくありません。という
表示がでました。
どうしてでしょうか?ちなみに本当はE列なのですが・・・
まちがいなくコピペしてEといれかえてやってるのですが。。。

 E1 = IF(OR(COUNTIF(E:E,E4)>1,・・・
 と変更してダメだったのでしょうか?
 (tomo)

ところで、どなたも確認していないようですが、ABCというのは曜日でしょうか?
もし、クラスであるなら、1時限目のB4とC4とD4のセルの内容も重複してはいけないのではありませんか?

(まゆ)


みなさんありがとうございます。
そうです そうやってるのですがなかなか・・・
(E1 = IF(OR(COUNTIF(E:E,E4)>1,・・・てやってるのですがそうならないのです。)

ABC 実はクラス別となっています。

	[A]	[B]	[C]	[D]
[ 1]		 	 	 
[ 2]		A	B	C
[ 3]	1時限	国語	算数	理科
[ 4]		山下	山本	山根  ★
[ 5]	2時限	算数	社会	道徳
[ 6]		阪口	山本	山根  ★
[ 7]	3時限	算数	社会	道徳
[ 8]		山下	山本	山根  ★
[ 9]	4時限	国語	算数	理科
[10]		山下	山本	山根  ★
[11]	5時限	算数	社会	道徳
[12]		阪口	山本	山根  ★
[13]	6時限	算数	社会	道徳
[14]		山下	山本	山根  ★

という表に変更してここの星のところに重複です!と出る表にするにはどうしたらいいですか?
何卒宜しくお願い致します。


 やはり、クラスでしたか。
 もしかして、と思うのですが、1〜6時限の中では、教師名が重複してもいいのでしょうか?
 つまり、Aクラスに山下が1時限目と6時限目に配置される、という事です。
 同じ時限でABC内で重複出来ないのは、ダブルブッキングを防ぐ為に有効ですが、
 1〜6時限の中で重複出来ない、という条件を疑問に思っておりました。

 整理していただきたいのは、
 『重複してはいけないのは、本当はどこの部分なのか』です。

 私の質問にも直接ご回答が頂けておりませんので、確認させて頂きます。
 イ:Aクラスの1〜6時限目の教師が被ってはいけない
 ロ:1時限目の各クラスに配属される教師が被ってはいけない
 ハ:イとロ両方である。
 のどれでしょうか?

 変更後の表を見たところ、ロなのかな?と思います。
 イの条件を入れるのであれば、以前の表の星の位置である必要があるからです。

 これまでご質問されていたのが、イの条件ですので、
 皆さんはイの条件が表示される方法を提示して下さっています。
 これをそのままE列に入れたのでは、正しく表示されるはずがありません。

 また、本当はE列なのですが…というのは、もしかして、
 ★を入力する場所がE列なのですが、という意味ですか?
 他の方々がご回答なさっているのは、データ(算数や山下といった内容)がE列に
 記入されている場合のことです。

 B1 = IF(OR(COUNTIF(B:B,B4)>1,…

 というのは、B1のセルに
 『= IF(OR(COUNTIF(B:B,B4)>1,…』(『』表記は入れないで下さい)
 という計算式を入れる、という意味なのはおわかりですよね?

 これは、★がB1にあったからです。
 計算式の中に書いてあるB4というのは、B4の値を取り出す、という意味ですので、
 結果を出したいセルがどこであろうと、取り出したい元の値の場所は変わりません。
 ですので、E1に★を入れる場合も、
 『= IF(OR(COUNTIF(B:B,B4)>1,…』
 と入力すればいいのです。

 ただし、これはあくまでイを求める式ですので、ロの場合は若干異なります。

(まゆ)


ありがとうございます。
『ロ』でお願いします。

多分あってると思うのですが
「この数式は正しくありません」と表示されるのです。。。
何ででしょうか?でもいつまでもみなさまにご迷惑をおかけするわけにもいきませんので
最後の表で、『ロ』でお願い致します。


 ヒントだけです。
 COUNTIF(B:B,B4) → COUNTIF(4:4,B4)
 今までの長い数式を使って後はご自身で考えて下さい。
 COUNTIF関数についてはこのサイトのエクセルマイスターに詳しく解説があります。
 (tomo)

ありがとうございました。

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.