• ベストアンサー

エクセルについて教えて下さい。

A1~A10・B1~B10・C1~C10の中に、7月から10月までの日にちをランダムに入力します。 A1~C10のセルに、同じ日にちが4つ以上入力されたときに、警告として、その日付が赤字に表示、または警告するようにするには、どうしたらいいのでしょうか。 よろしくお願いします。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

>同じ日にちが4つ以上入力されたときにその日付が赤字に表示 ⇒方法1  (1)A1:C10範囲を選択→書式→条件付き書式  (2)「数式が」を選択、数式欄に=COUNTIF($A$1:$C$10,A1)>=4  (3)書式→フォントタブの色欄で赤色を選択、又はセル背景を色付けする場合はパターンタブで赤色を選択→OK ⇒方法2  (1)A1:C10範囲を選択→データ→入力規則  (2)「ユーザ設定」を選択、数式欄に=COUNTIF($A$1:$C$10,C3)<4、→OK  (蛇足)エラーメッセージタブで任意警告メッセージを登録 ※省略可能

morito_55
質問者

お礼

ありがとうございました。 条件付き書式で、作成することにしました。

その他の回答 (6)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.7

私もCOUNTIF利用を思いついてやって見たが、4つ目には、4つとも(例)セルに色が付いた。ランダムに入力するときは、最後(4つめ)がどれか判りにくい。 普通は最後は今入れたセルで覚えているだろうが。 ーー 最終入れたセルを色づけたたい、とやってみたが Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column >= 1 And Target.Column <= 3 And Target.Row >= 1 And Target.Row <= 10 Then If Application.CountIf(Range("A1:c10"), Target) >= 4 Then Target.Interior.ColorIndex = 6 End If End If End Sub では、4つ以上あってどれか(もちろん同じ値)削除したとき、色を 削除することが無い。これを盛り込もうとするとうまくいかない。 Changeイベントではセルの値を削除したセルの元の値がTargetでは捉えられないので難しそうで断念した。普通の使い方なら、下記で使えるかな。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column >= 1 And Target.Column <= 3 And Target.Row >= 1 And Target.Row <= 10 Then If Target = "" Then Target.Interior.ColorIndex = xlNone Else If Application.CountIf(Range("A1:c10"), Target) >= 4 Then Target.Interior.ColorIndex = 6 End If End If End If End Sub

morito_55
質問者

お礼

いろいろと、ありがとうございました。 簡単な条件付き書式で、作成することにしました。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.6

例えば条件付き書式でA1:C10の条件を 「数式が」「=AND(COUNTIF($A$1:$C$10,A1)>3,ISNUMBER(A1))」としてセルの書式を設定 4つ以上入力された日付のセルの書式が変わります。 警告表示なら、「データ」「入力規則」を入力値の種類をユーザー設定で 数式を「=AND(COUNTIF($A$1:$C$10,A1)<4,ISNUMBER(A1))」 でエラーメッセージタブで警告文を設定する。

morito_55
質問者

お礼

ありがとうございました。 条件付き書式で、作成することにしました。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.5

NO3です。言葉足らずでしたので補足します。 方法1は、同一日付が4つ以上となった場合に対象の全セルに色着けします。 方法2は、同一日付が3つまでを入力可能として4つ目を入力した時点で警告メッセージを表示します。 警告レベルは、停止・注意・情報(エラーメッセージタブ)があり、デフォルトは「停止」ですのでその他レベルもお試し下さい。

noname#192382
noname#192382
回答No.4

次のマクロでできましたよ。 Option Explicit Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2008/5/2 ユーザー名 : ' ' Range("A1:A10").Select Selection.Copy Range("E1:E10").Select ActiveSheet.Paste Range("B1:B10").Select Application.CutCopyMode = False Selection.Copy Range("E11:E20").Select ActiveSheet.Paste Range("c1:c10").Select Application.CutCopyMode = False Selection.Copy Range("E21:E30").Select ActiveSheet.Paste Columns("E:E").Select Application.CutCopyMode = False Selection.Sort Key1:=Range("E1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin Dim mygyo As Integer, mygyo4 As Integer For mygyo = 1 To 30 mygyo4 = mygyo + 3 If Cells(mygyo, 5) = Cells(mygyo4, 5) Then 'akaji MsgBox "4つ以上の重複" Else End If Next mygyo End Sub

morito_55
質問者

お礼

いろいろと、ありがとうございました。 簡単な条件付き書式で、作成することにしました。

  • higekuman
  • ベストアンサー率19% (195/979)
回答No.2

COUNTIF関数と条件付き書式でできますよ。

morito_55
質問者

お礼

ありがとうございました。 条件付き書式で、作成することにしました。

  • hide0824
  • ベストアンサー率0% (0/1)
回答No.1

通りすがりに拝見しました。 関数のVLOOKUPとIFを組み合わせれば可能だと思います

morito_55
質問者

お礼

ありがとうございました。 条件付き書式で、作成することにしました。

関連するQ&A

  • エクセルで、あと何日あるかを表示させる関数

    いつもお世話になります。 例えば、 Aのセルに『2006/1/12』という今日の日付データを入力します。 同じくBのセルに『2006/3/27』という未来の日付データを入力します。 Bの日付の「未来」まで、あと何日あるのか?という日にちをCのセルに表示させるには、 どのような関数を入力すれば良いのでしょうか? お詳しい方、何卒ご教授くださいませ。

  • エクセルにて

    A列には日付が入力してあります。(2001/7/17) その日付から3日間経過してもC列のその行に何も入力されなければ、 B列のそのセルを黄色に表示する。 更に7日間経過しても入力なければ赤に表示するようにしたいのですが!? C列に入力されればB列のそのセルは青色表示にしたいのですが!     A      B     C 1 2000/7/10   赤 2 2000/7/11   青   2001/7/16 2 2001/7/13   黄   

  • EXCEL奮闘中

    入力規則で以下のようなことできるのでしょうか?      A       B 1  2004/1/4 2003/12/31 2 2004/1/20 3 2004/1/1 2004/1/1 日付入力で1.BのセルにAより前の日付がはいった 2.Aのセルが空白のままBに日付を入れた。 このような時に警告文など出そうと思えばどうしたら 可能でしょうか?よろしくお願いします。

  • エクセルの条件付書式について

    初心者ですが、エクセルで血液検査の記録を管理しようと思います。 A列に日付 1行目に検査項目を入れてそのセルの中に標準値も掲載しておきます。 B2が例えば尿酸(3.6~7.0)と表示しB3に7.2と入力した場合に色付けして警告する。 C2には血糖値(60~109)と表示しC3に111と入力した場合に色付け、としたいんですが、今一わかりません。よろしくご教授願います。

  • エクセルで悩んでいます

    Sheet1のA1に西暦(2008)B1に月(9月) B3~AF3まで日付(固定)その下の行に曜日表示(月を変えると自動で変わります)A5~A22まで個人名(固定)が入っています、そして B5~B22迄(出勤・欠勤)などその日の出勤状況が入ります(手入力) CDE~同じようにその日の出勤状況が入ります この(出勤・欠勤)等の状況を他のシートに移したいです。 Sheet3に通常のカレンダー(壁に掛かってるような)のような表示があります A33(日曜日)B33が空白セルでC33が(月曜日)D33が空白セルの様に空白を挟み土曜日まで続いています、そして34行目~38行目までは曜日の下に日付けが表示されています。シート1の(月)を変更すると日付けが自動で変わります(曜日は固定) その日にちの脇にある空白セルにシート1の(出勤・欠勤)等の表示を 自動で表示させたです(カレンダーは個人別に人数分作ってあります)月を変えると日にちがずれてしまいますので(カレンダーとして使うなら問題ないのですが、月別の出勤状況を解るようにしたいので どうしていいか解りません。 ちなみにシート1は出勤簿でシート3は個人別の給料明細です。 給料明細の中に小さなカレンダーを作り出勤状況を解るように出来ないか考えています。空白セルに手入力も出来るのですが、時間が掛かり過ぎるので・・・VBAなどは解らないので簡単な関数などで出来ればと思います。 解りにくい説明で申し訳ありませんが、お願いします。

  • エクセルで一致しないものを抜き出す方法

     またエクセル関数の質問があります。 セルA1:A6にA~Fがランダムに入力されています。 セルB1:B6にA~Fの一部がランダムに入力されています。空白もあります。 別なセルに一致しない記号を表示させたいのですが.... 例   A B C D 1 F C B 2 D   D 3 B A 4 A F 5 E 6 C E 別なセル(上記ではC1、C2)に表示させられますか? A列とB列の記号は変化します。  よろしくお願いします。

  • エクセル 数値が表示されたら、エラー表示

    エクセル2003です。 A1セルと、B1セルに数値を入力し、C1セルに答えが表示されるようにしています。 A1+B1の合計‥‥C1セル10以上と表示されたら、「10以下となるように」という警告文を表示したいです。 入力規則では、そのセルに入力する作業をして、初めてエラー表示となるため、 ただC1に表示されるパターンでは、入力規則が反応せず、困っています。 表示規則のような設定はあるのでしょうか?

  • Excelの入力で

    Excelで A1のセルには日付を入力します。 A1に入力した日付が 1/1~1/31 の間の日付だったときは、B1のセルに自動的に「1月」と表示 2/1~2/28 のときは「2月」、3/1~3/31 のときは「3月」…と表示させたいです。 Excelの関数でできるかなと考えていたのですが、頭がパンクしてしまいました(^^; よろしくお願いします。

  • エクセルで「日付」を表示する件

    エクセルで「日付」を表示する件 シート(1)の「A1」に「この事件は」の文字列。「B1」に書式を日付にして「平成22年8月1日」と入力。「C1」に「に起こりました」と入力。 複数のセルの文字列と日付を一つのセルに合わせて「この事件は平成22年8月1日に起こりました」のようにしたいので、「D1」に「=A1&B1&C1」と入力すると、「この事件は40391に起こりました」と表示されてしまいます。 解決方法を教えて下さい。 エクセルのバージョンは2002です。

  • エクセルでランダムな日付を関数使って曜日を表示

    例えば、A列に日付の項目B列に曜日の項目を作ります。A3~A20のセルにランダムに日付が入っています。その横のB3~B20セルに曜日を表示したいのですが・・・・・・ B列にはA列を参照する数式を入力し、セルの書式設定の表示形式で曜日を表示するにはどのようにしたらいいのでしょうか?宜しくお願いします。

専門家に質問してみよう