• ベストアンサー

関数やマクロを使用して出来ませんか?

初心者です。 いろいろと自分なりに調べているのですが、よく分からず教えてください。 例) B列、D列で(BB・BD・DDなど組み合わせは問いません)同じ数値が2つ揃った時、A列にある同じ数値のセルの隅に✔が自動についたり、セルの中に薄く‘済み’と表示させたりするなど、同じ数値が2度打ち込まれているか、A列を見るだけで確認することは出来ませんでしょうか? ※ちなみにセルの色や文字色を変化させることは考えていません。 分かりづらい点もあるかとは思いますが、ご教示ください。 よろしくお願いいたします。

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.5

質問の趣旨が汲み取れません。 A列には既に数値が入力されているものとして、B1セルまたはD1セルに入力した数値がA列に存在するときはA列のB1セルまたはD1セルと同じ値のセルに✔を表示するのでしょうか? 条件付き書式で表示だけに文字列を付加することは可能ですがA列の値に文字列を付加すると文字列変化しますが、そのような処理で良いのでしょうか? また、「B列、D列で(BB・BD・DDなど組み合わせは問いません)同じ数値が2つ揃った時、A列にある同じ数値のセルの隅に✔」のBBの組み合わせやBDの組み合わせ等の意味が分かりません。 B1とB5に同じ値(例えば10)が有ったとき、A7=10を検知してA7セルに目印を入れると言うことであればVBAまたは条件付き書式で可能と思います。 条件付き書式のときはA列を選択して「数式を指定して書式を設定する」から次の数式を適用します。 =COUNTIF(A:D,A1)>1 書式は数値の表示形式で「ユーザー定義」で新しい書式を指定します。(先頭または後尾に"✔"を付加する) VBAについては不得手なので得意な方の回答を待ってください。 貼付画像はExcel 2013で検証した結果です。

yuito45
質問者

お礼

ご回答いただきありがとうございます。 そしてお返事が遅くなり申し訳ありません。 私がお聞きしたかったことはbunjii様が最後に仰ったとおりです。 > B1とB5に同じ値(例えば10)が有ったとき、A7=10を検知してA7セルに目印を入れる… この関数でどうにか出来そうです。 助かりました。 ありがとうございます。

その他の回答 (6)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.7

No.6です。 たびたびごめんなさい。 投稿後思ったのですが、前回の方法はあまり意味がないように思います。 A列の重複データに「印」を付けたい!というコトになりますので、 条件付き書式の方がはるかに実用的だと思います。 A列すべてを範囲指定 → 条件付き書式 → 新しいルール → 数式を使用して・・・ → 数式欄に =COUNTIF(B:B,A1)+COUNTIF(D:D,A1)>1 という数式を入れ → 書式 → 塗りつぶしから好みの色を選択しOK これで重複データに色が付きます。 >※ちなみにセルの色や文字色を変化させることは考えていません。 なぜ条件付き書式を考えられないのか判らないのですが、 A列のデータをそのまま残し、なおかつ「チェック」にこだわるのであれば代替案として・・・ ↓の画像のようにA列を挿入し、A1セルに =IF(COUNTIF(C:C,B1)+COUNTIF(E:E,B1)>1,"✔","") という数式を入れフィルハンドルで下へコピー! 条件付き書式が汎用性があり適しているように思いますが これで見た目には何とかご希望に近い形にならないでしょうか?m(_ _)m

yuito45
質問者

お礼

ご回答いただきありがとうございます。 そしてお返事が遅くなり申し訳ありません。 =IF(COUNTIF(C:C,B1)+COUNTIF(E:E,B1)>1,"✔","") 上記の数式で問題なさそうです。 大変助かりました。 ありがとうございます。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.6

こんばんは! >同じ数値が2つ揃った時・・・ とありますので、A・B・D列データは必ず「数値」だという前提で、 A列は1からの連番が入力してあるとします。 VBAになりますが、一例です。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに ↓のコードをコピー&ペースト → Excel画面に戻り、B・D列にデータを入力してみてください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から Dim c As Range, myRng As Range, myFlg As Boolean If Intersect(Target, Range("B:B,D:D")) Is Nothing Or Target.Count > 1 Then Exit Sub With Target If .Column = 2 Then Set myRng = Range("D:D") Else Set myRng = Range("B:B") End If Set c = myRng.Find(what:=.Value, LookIn:=xlValues, lookat:=xlWhole) If WorksheetFunction.CountIf(Columns(.Column), .Value) > 1 Then myFlg = True End If If Not c Is Nothing Or myFlg = True Then If IsNumeric(Cells(.Value, "A")) Then Cells(.Value, "A").HorizontalAlignment = xlRight Cells(.Value, "A") = ChrW(&H2713) & " " & Cells(.Value, "A") End If End If End With End Sub 'この行まで ※ B・D列データの変化は考慮していませんので、 「チェック」が一旦入ったセルは文字列となり変化しません。 お望みの方法でなかったらごめんなさいね。m(_ _)m

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.4

ご説明が言葉足らずですが、要するに 1.A列に最初の数字がある 2.B列に数字を手で記入する 3.更にD列にも数字を手で記入する 4.ご質問の「2つが揃ったら」じゃなくてA,B,D列の「3つの数字が同じなら」A列の数字にチェックを付記したい ということですかね。 ご利用のエクセルのバージョンが不明のご相談ですが、最近のエクセルを使って次のような操作は可能です。 手順: A列を丸ごと列選択する(必須) 必ずA1セルがアクティブセル(選択範囲の中で逆反転セルになっている)事を確認する 条件付き書式▼から新しいルールを開始 数式を使用して…を選び、 =AND(A1=B1,A1=D1) と記入、 書式ボタンから表示形式でユーザー定義を選び "✔ "G/標準;"✔ "-G/標準;"✔ "G/標準;"✔ "G/標準 などのように設定する。 古いエクセルの条件付き書式ではこういう設定は出来ないので、その時は素直に条件付き書式で文字色・セルの塗色を設定するなどの対処になります。 ご相談投稿では、普段アナタがご利用のソフトのバージョンまでキチンと明記する事を憶えて下さい。次回以降のご参考に。

yuito45
質問者

お礼

ご回答いただきありがとうございます。 お返事が遅くなり申し訳ありません。 確かにバージョンが分からなければ答えようがないですよね…。失礼しました。 ちなみに2010です。 添付して頂いた画像を拝見する限り、keithin様の「2つが揃ったら」じゃなくてA,B,D列の「3つの数字が同じなら」A列の数字にチェックを付記、ということではなく、A列にある数字と同じ数字がB・D列のどこかの行に2つある時にA列にチェックをつけたい…ということです。 ただチェックのつけ方が分かり大変参考になりました。 ありがとうございました。

  • shintaro-2
  • ベストアンサー率36% (2266/6245)
回答No.3

>A列にある同じ数値のセルの隅に✔が自動についたり、セルの中に薄く‘済み’と表示させたりするなど、同じ数値が2度打ち込まれているか、A列を見るだけで確認することは出来ませんでしょうか? それはもはや一つのセルではないので、できません >※ちなみにセルの色や文字色を変化させることは考えていません。 条件付書式でA列に網掛けをするのが一番楽です。

yuito45
質問者

お礼

お返事が遅くなり申し訳ありません。 ご回答いただきありがとうございます。 条件付き書式ですか。 確かにこの方法楽にできそうですね。 ありがとうございました。

noname#212067
noname#212067
回答No.2

はじめまして、こんばんは 「B列、D列で(BB・BD・DDなど組み合わせは問いません)」とは こういうことなのでしょうか? BB A列 B列 D列 済み 1 空空 1 BD A列 B列 D列 済み空1空空1 DD A列 B列 D列 済み空空空1 空空空空空1 ※空は空白

yuito45
質問者

補足

ご回答いただきありがとうございます。 感覚としては、No.1の方が答えて頂いたものが近いです。 その方の補足に詳細を明記しました。 お分かりになりますでしょうか? よろしくお願いいたします。

  • trajaa
  • ベストアンサー率22% (2662/11921)
回答No.1

こういう事?

yuito45
質問者

補足

さっそくのご回答ありがとうございます。 大枠はそんな感じなのですが、B・D列に打ち込む数値はA列に前もって入力されており ‘済み’や‘✔’がA列のセルに自動に表示される際、入力されている数値は消えずに残したいと考えております。 なので数値の前面や背面に数値が読める程度に‘済み’と薄く表示させたり、セルの片隅に✔マークのようなものを表示させたりしたいです。 説明が不十分ですみません。 お分かりになりますでしょうか? よろしくお願いいたします。

関連するQ&A