- ベストアンサー
4つ以上の条件付き書式(エクセル)
条件付き書式で3つはできるようになったのですが、4つ以上だと項目が出てこないでできません。4つ以上の条件付き書式はできるのでしょうか。ちなみに以下のことを考えています。 100~ … A 90~99… B 80~89… C 70~79… D 60~69… E 50~59… F 40~49… G 30~39… H 20~29… I 10~19… J 0~9 … K
- みんなの回答 (11)
- 専門家の回答
質問者が選んだベストアンサー
ANo.6です。Iが抜けてました。 すいません。 B1 =IF(A1="","",CHOOSE(INT(A1/10)+1,"K","J","I","H","G","F","E","D","C","B","A"))
その他の回答 (10)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 数式ですと、以下のようになります。 =CHAR(64+11-INT(MIN(100,MAX(A1,0))/10)) マクロですと、以下のような手順になります。 まず、シートモジュールにマクロを取り付けます。 ・最初に、色見本用サンプルプログラム(TestColorListOut)で、色見本を作ってください。 例: F1 にセルを置いて実行すると、F1:G11 までの範囲が使われます。 Alt + F8 で、シート名.TestColorListOut がありますから、クリックします。 色見本用カラーインデックス番号出力プログラム(TestGetColorIndex)は、人に渡すときに、使用します。 そこに出てきた番号を、TestColorListOut の中の以下の部分にコンマ区切りで書きますと、 myColorList = "54,39,33,42,34,50,4,45,40,7,3" そのまま色が反映されます。 画面上部に、 Const 色見本セル As String = "G1:G11" 'ここに書き入れます。 とありますから、そこに、色見本で、パターンに色の付いた範囲を入れてあげます。 ここの例では、G1:G11 に色が付いていることになります。 ただし、今回は、11セルまでです。それ以上入れると、エラーが発生するかもしれません。 ************************** シート・マクロの取り付け方: マクロを実行しようとするワークシートのシートタブ(下部のSheet1,Sheet2 ...)を右クリックすると、「コードの表示(V)」というメニューがありますから、それをクリックしてください。そして、開いた画面に、以下のコードを貼り付けて、Alt + Q で閉じれば設定は完了です。 ************************** 使い方は、条件付き書式と同じです。 入力すれば、色が変わります。 '------------------------------- 'Option Explicit '------------------------------ 'イベントマクロ '------------------------------ '画面の先頭に入れる Const 色見本セル As String = "G1:G11" 'ここに書き入れます。 Const 設定範囲 As String = "A:A" Dim idxColors() As Variant Private Sub Worksheet_Change(ByVal Target As Range) Dim dum As Variant Dim c As Range Dim i As Long If Intersect(Target, Range(設定範囲)) Is Nothing Then Exit Sub On Error GoTo ErrHandler dum = UBound(idxColors) Application.EnableEvents = False For Each c In Target If c.Value <> "" Then i = Application.Evaluate("11-INT(MIN(100,MAX(" & c.Address & ",0))/10)") c.Interior.ColorIndex = idxColors(i - 1) '文字列出力 'c.Offset(, 1).Value = Chr(64 + i) Else c.Interior.ColorIndex = xlColorIndexNone End If Next c Application.EnableEvents = True ErrHandler: If Err.Number = 9 Then Call ConditionalFormat Err.Clear Resume Next End If End Sub '------------------------------- '色見本取得ブログラム Sub ConditionalFormat() Dim i As Long Dim c As Range ReDim idxColors(Range(色見本セル).Rows.Count) For Each c In Range(色見本セル) idxColors(i) = c.Interior.ColorIndex 'c.Font.ColorIndex i = i + 1 Next c End Sub '=============================== '色見本用サンプルプログラム '------------------------------- '色見本 Sub TestColorListOut() Dim myColorList As String Dim ColorLists As Variant Dim i As Integer '色番号リスト myColorList = "54,39,33,42,34,50,4,45,40,7,3" ColorLists = Split(myColorList, ",") 'カーソルを先頭に置くと With Selection.Cells(1) For i = 0 To UBound(ColorLists) .Offset(i, 0).Value = Chr(65 + i) .Offset(i, 0).Font.ColorIndex = ColorLists(i) .Offset(i, 1).Interior.ColorIndex = ColorLists(i) Next i End With End Sub '-------------------------------------------- '色見本用カラーインデックス番号出力プログラム '-------------------------------------------- Sub TestGetColorIndex() Const セルは何個 As Integer = 11 Dim i As Long Dim c As Range i = セルは何個 'カーソルを色つきパターンの上の先頭に置くと With Selection.Cells(1) For Each c In .Resize(i) c.Offset(, 1).Value = c.Interior.ColorIndex Next c End With End Sub
- imogasi
- ベストアンサー率27% (4737/17069)
ランクわけ文字を表示なら =IF(A1="","",IF(A1>100,"A",IF(A1<10,"K",CHAR(75-INT(A1/10))))) ーー 2007の前は色なしを含め4色までというのは、エクセルの常識。 2007では拡張された。 ーー >マクロ機能を使うのですね。やってみたいと思います VBAの経験なさそうだがやれるかな。 それには結構色々な知識が要るよ。 例 A列の数について Sub test01() d = Range("A65536").End(xlUp).Row For i = 1 To d Select Case Cells(i, "A") Case Is > 100 ci = 6 Case Is > 90 c1 = 4 Case Is > 80 ci = 8 Case Is > 70 c1 = 36 Case Is > 60 ci = 35 Case Is > 50 c1 = 34 Case Is > 40 ci = 38 Case Is > 30 c1 = 40 Case Is > 20 c1 = 24 Case Is > 10 ci = 43 Case Is > 0 ci = 14 End Select Cells(i, "A").Interior.ColorIndex = ci Next i End Sub 色を11色も区別するのは難しいよ。背景色なら余り濃い色は適さないから、制約が多い。 ーー 下記実行して、色を指定してみて、C列に色コードが出るから、 考えてみてください。 Sub test02() For i = 1 To 11 x = Application.Dialogs(xlDialogPatterns).Show Cells(i, "C") = ActiveCell.Interior.ColorIndex Next i End Sub そのコードをTst01()のコードのCaseの それぞれの区画の Case Is > 100 ci = 6 の ci = 6 の6などと置き換えてください。
- hallo-2007
- ベストアンサー率41% (888/2115)
>A~K(評価)に分けたいという意味でした。申し訳ありませんでした。 ただ、11段階に分けるだけなら、アルファベットにこだわらず 点数がA列の場合 =INT(A1/10) 下フィル(0,1,2,3,4,5,6,7,8,9,10の11段階評価) 結果を、どの様に活用するか知りませんが、総合評価で合計、グラフ表示する必要などありましたら、数値の方が便利かも。
- starsip
- ベストアンサー率36% (22/60)
#2です。 補足について、下記URLを参照してみて下さい。 関数のネストレベル http://homepage3.nifty.com/hiro22219/kansu-nest.html ExcelのVBAに挑戦しよう http://www.ss-dc.com/tokusyu/tokusyu19.htm
- n-jun
- ベストアンサー率33% (959/2873)
例えばA1に点数があったとして、A1が空白の時はB1を空白、 それ以外の場合は判定結果を表示するとした場合、 B1 =IF(A1="","",CHOOSE(INT(A1/10)+1,"K","J","H","G","F","E","D","C","B","A")) ではどうでしょうか?
- nobu555
- ベストアンサー率45% (158/345)
検索値に対して、ランク付け出来ればよいのでしたら VLOOKUP関数出来ます。 C,D列に下記のリストがあるとして C D 0 A 10 B 20 C ・ ・ ・ 100 K セルA1に検索値があり、セルB1に下記数式を入力 =VLOOKUP(A1,C1:D11,2) VLOOKUP関数については、ヘルプを参照するか 下記を参考にしてください。 http://allabout.co.jp/computer/msexcel/closeup/CU20060805A/index3.htm
お礼
ご回答、ありがとうございます。VLOOKUPということも以前考えたことがありました。表を作ってその中から検出するといったようなものだったように思います。 今回の質問で、とにかくいろいろな関数があることが改めてわかりました。また、自分が使っているものは、ほんのわずかでしかないこともわかり、皆様には、大変感謝しております。
- mshr1962
- ベストアンサー率39% (7417/18945)
EXCEL2003までは3つの条件書式と条件外の書式までが限度です。 EXCEL2007でなら最大64まで設定できます。 http://office.microsoft.com/ja-jp/excel/HA100778231041.aspx?pid=CH100648071041#ConditionalFormatting http://office.microsoft.com/ja-jp/workstyle/FX102072861041.aspx http://office.microsoft.com/ja-jp/excel/HA101655491041.aspx?pid=CH100740791041 ※EXCEL2003までで行うとしたら、VBAで変更するようにするしかありません。 過去の質問に同様のケースの回答があります。
お礼
ご回答、ありがとうございます。EXCEL2007は、簡単に複数の条件を設定できるのですね。IF関数でも限度があり、なかなか難しいものだと実感しました。いろいろと勉強になりました。
- n-jun
- ベストアンサー率33% (959/2873)
条件付き書式=色を変えたいと言う事ですか?(11色) それとも、評価(A~K)に分けたいと言う事ですか?
お礼
ご回答、ありがとうございます。わかりにくい質問でご迷惑をおかけしました。A~K(評価)に分けたいという意味でした。申し訳ありませんでした。
- starsip
- ベストアンサー率36% (22/60)
一例です。 関数ですが B1へ =IF(A1=100,"A",IF(A1>79,"B",IF(A1>59,"C",IF(A1>39,"D",IF(A1>19,"E",IF(A1>9,"F","G")))))) で、下方へオートフィル。
お礼
ご回答、ありがとうございます。なるほど関数で作るとなるとこのような数式になるのですね。一度、チャレンジしたいと思います。
補足
関数にするといくつでもいいのでしょうか?そのあたりも教えていただけるとありがたいです。
- pon-san
- ベストアンサー率45% (169/371)
こんにちは。 Excel2007では様々な条件付き書式設定が可能になっていますが、 Excel2003以前のバージョンでは4つ以上は出来なかったと思います。 マクロ機能を使ってセルを塗り分けるしか方法がなかったと思います。
お礼
ご回答、ありがとうございます。Excel2007ではありません。そのため、条件付き書式が4つ以上ができません。マクロ機能を使うのですね。やってみたいと思います。
お礼
ご回答、ありがとうございます。確かに判別いたしました。A1の数値によってB1が判定してくれます。この場合、100とA1に打ち込むとエラーになってしまいます。私のやり方がいけないのかもしれませんが、どうなのでしょうか?よろしくお願いします。