- ベストアンサー
どういう式を使うのか?教えてください!
同じ表の中に、同じ数字が出てきた時 表の中の同じ数字全てが、 同色で変わる(同じ数字がどこにあるか判る)様に表示したいのですが 一体どういう風にすればいいのか解りません… これが可能になる方法をご存知の方 恐れ入りますが教えてください。 Excel97を使用しています…
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
既に解答されている内容が納得できないので、解答を入れてみます。 A1からB10までを数値が入っている範囲と仮定する。 (1)A1からB10を範囲指定する。 (2)書式->条件付書式->「セルの値が」->「次ぎの値に等しい」をクリック ->その次ぎのボックスに、「2」に等しいセルを赤色にしたいなら「2」と入力する。 (3)「書式」をクリック->「パターン」のタブをクリック>「色」を赤色をクリック (4)OK->OKをクリック WIN98,エクセル2000ですので、97で出来なければごめんなさい。
その他の回答 (4)
- nishi6
- ベストアンサー率67% (869/1280)
>表の中の同じ数字全てが、同色で変わる の『同じ数字全て』は『同じ数字』は複数(10が2個で20が3個とか)あるのでしょうか。 入力しながらチェックするなら条件付き書式で表示できますね。 comvさんの書かれた解答で任意の数値、文字に対して判定できると思います。 (データが多量にあると、条件に値を入れるのは大変ですから。) しかし、一括して調べたり、複数種類の同じ数値がある場合、条件付き書式では同じ色になってしまいますね。 (comvさんの例でA1から10,10,20,20,30,30,40,40,50,50のような場合です) この辺りを考慮したマクロを書いてみました。 同じ値どうしには同じ色(セルに色を塗っています)、その値によって使う色を変えています。 10が2個で20が3個なら10と20は別の色で塗られます。カラーインデックスを使っていますが、文字が見えなくなるようなカラーは間引いています。 41色使っていますが、同じ値の種類がこれ以上になったら重複して使っています ツール→マクロ→Visual Basic Editor でVBE画面に移り、挿入→標準モジュール で標準モジュールを挿入し、そこに下記コードを貼り付けます。 シートに戻り、重複を調べたい範囲を選択して、ツール→マクロ→マクロ で実行します。(条件付き書式は設定していません。Excel2000) 長くなってしまいました。 ご参考に。 Public Sub DouchiKensaku() Dim searchArea As Range '調べる範囲 Dim Rg As Range '調べるセル Dim schRg As Range '見つかったセル Dim firstAddress As String '見つかった最初のセル Dim ColorIdx As String 'カラーインデックス(41色。見づらい色はカット)を並べた文字列 Dim paintPatt As Integer 'セルのパターンに使うカラー ColorIdx = "030406070810121314151617181920222324262728" ColorIdx = ColorIdx & "3133343536373839404142434445464748505354" Set searchArea = Selection 'ここに定義してもいい。例 = Range("A2:X1000") searchArea.Interior.ColorIndex = xlNone '色を全部消す For Each Rg In searchArea If Rg.Interior.ColorIndex = xlNone Then 'まだ色を塗っていないセルを検索する Set schRg = searchArea.Find(What:=Rg.Value, After:=Rg, LookIn:=xlValues, LookAt:=xlWhole) '見つかって、そのセルは自分でなかったら If Not schRg Is Nothing And Rg.Address <> schRg.Address Then '次の色(次のカラーインデックス) paintPatt = paintPatt + 1 If paintPatt > Len(ColorIdx) / 2 Then paintPatt = 1 '登録した色数より多くなったら1にする End If 'カラーインデックスを取り出して自分を塗る Rg.Interior.ColorIndex = Val(Mid(ColorIdx, paintPatt * 2 - 1, 2)) '最初に見つけたセル firstAddress = schRg.Address Do 'まだ塗っていなかったら If schRg.Interior.ColorIndex = xlNone Then '見つけたセルを塗る schRg.Interior.ColorIndex = Val(Mid(ColorIdx, paintPatt * 2 - 1, 2)) End If '次の検索 Set schRg = searchArea.FindNext(schRg) Loop While Not schRg Is Nothing And schRg.Address <> firstAddress End If End If Next End Sub
お礼
nishi6さん、ご回答ありがとうございました。 折角教えていただいたのですが、ちと私には理解が難しかったです。 ごめんなさい…m(_ _)m
- annie_x
- ベストアンサー率50% (65/129)
[セルの書式設定] ウィンドウで [パターン] タブを選ぶとセルの色が選べます。。。 と書こうとしたらcomv さんが回答してくれていますので詳細は省略します。
お礼
annie xさん、度々ありがとうございます。 色の変え方などまでは理解できたのですが、 関数が解っていない等の問題点も含み できませんでした…
- comv
- ベストアンサー率52% (322/612)
こんにちは! >これにどのように設定すれば >色が変わるのか解りませんでした…(涙) 範囲を例えばA1:A10として ・A1:A10を選択 ・書式 条件付き書式 条件1ドロップダウン[数式が] 数式欄 =COUNTIF($A$1:$A$10,A1)>1 ($マークのある部分と無い部分に注意) 書式ボタン パターンタブ 好みの色 OK OK =COUNTIF(範囲を絶対参照で,アクティブセル)>1 アクティブセルは選択範囲で反転していないセル番地です
お礼
comvさん、どうもありがとうございました。 COUNT、COUNTAの使い方(要は関数ですね)は かろうじて学んでいたものの、COUNTIFとは… しかしやってみたものの、ちょっと設定ができませんでした。 Excel97じゃ、できないのかしら…トホホ(´-`)
- annie_x
- ベストアンサー率50% (65/129)
[書式]-[条件付き書式]でできますよ。 どの数字をどの色にするのかは設定しないといけないですが。 Excel 2000 で確認したので、Excel 97 になかったらごめんなさい。
補足
annie xさん、早速の回答ありがとうございます。 書式-条件付き書式は97にもあるのですが、 これにどのように設定すれば 色が変わるのか解りませんでした…(涙) Excelが初心者レベルな者で…(^^ゞ 恐れ入りますが、少し詳しく教えていただけると嬉しいです~
お礼
imogasiさん、ありがとうございます。 annie xさんとcomvさんのご回答を聞いて、やって見たのですが どうも設定できず、imogasiさんの方法を取らせてもらったら 比較的近いものができあがりました。 ただ、現在この表を作業中で今後も数字を入力するものなのですが 同じ列×段に同じ数字が重ならない様に入れるものなのです。 (2~22の中の決められた数字なのですが) ゲームで似たのがあります(ナンバープレース)が こんな感じの物なので、今後入れていく時の 注意として打ち込んだ数字が他のどこにあるのか、 色が判ればと思ったのでした… 上記ですと、全て打ち終わった段階で条件付き書式の設定により 色が判別できるので、そこで確認できるようになるのですね。 とりあえず、この方法でやっていこうと思います…