プロが教える店舗&オフィスのセキュリティ対策術

 条件付き書式で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

A 回答 (11件中1~10件)

ANo.6です。

Iが抜けてました。
すいません。

B1 =IF(A1="","",CHOOSE(INT(A1/10)+1,"K","J","I","H","G","F","E","D","C","B","A"))
    • good
    • 0

こんにちは。



数式ですと、以下のようになります。

=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
    • good
    • 0

ランクわけ文字を表示なら


=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などと置き換えてください。
    • good
    • 0

>A~K(評価)に分けたいという意味でした。

申し訳ありませんでした。
ただ、11段階に分けるだけなら、アルファベットにこだわらず
点数がA列の場合
=INT(A1/10)
下フィル(0,1,2,3,4,5,6,7,8,9,10の11段階評価)
結果を、どの様に活用するか知りませんが、総合評価で合計、グラフ表示する必要などありましたら、数値の方が便利かも。
    • good
    • 0

#2です。


補足について、下記URLを参照してみて下さい。

関数のネストレベル
http://homepage3.nifty.com/hiro22219/kansu-nest. …

ExcelのVBAに挑戦しよう
http://www.ss-dc.com/tokusyu/tokusyu19.htm
    • good
    • 0

例えばA1に点数があったとして、A1が空白の時はB1を空白、


それ以外の場合は判定結果を表示するとした場合、
B1 =IF(A1="","",CHOOSE(INT(A1/10)+1,"K","J","H","G","F","E","D","C","B","A"))
ではどうでしょうか?
    • good
    • 0
この回答へのお礼

 ご回答、ありがとうございます。確かに判別いたしました。A1の数値によってB1が判定してくれます。この場合、100とA1に打ち込むとエラーになってしまいます。私のやり方がいけないのかもしれませんが、どうなのでしょうか?よろしくお願いします。

お礼日時:2007/11/13 22:58

検索値に対して、ランク付け出来ればよいのでしたら


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/C …
    • good
    • 0
この回答へのお礼

 ご回答、ありがとうございます。VLOOKUPということも以前考えたことがありました。表を作ってその中から検出するといったようなものだったように思います。
 今回の質問で、とにかくいろいろな関数があることが改めてわかりました。また、自分が使っているものは、ほんのわずかでしかないこともわかり、皆様には、大変感謝しております。

お礼日時:2007/11/13 22:52

EXCEL2003までは3つの条件書式と条件外の書式までが限度です。


EXCEL2007でなら最大64まで設定できます。
http://office.microsoft.com/ja-jp/excel/HA100778 …
http://office.microsoft.com/ja-jp/workstyle/FX10 …
http://office.microsoft.com/ja-jp/excel/HA101655 …

※EXCEL2003までで行うとしたら、VBAで変更するようにするしかありません。
過去の質問に同様のケースの回答があります。
    • good
    • 0
この回答へのお礼

 ご回答、ありがとうございます。EXCEL2007は、簡単に複数の条件を設定できるのですね。IF関数でも限度があり、なかなか難しいものだと実感しました。いろいろと勉強になりました。

お礼日時:2007/11/12 19:43

条件付き書式=色を変えたいと言う事ですか?(11色)


それとも、評価(A~K)に分けたいと言う事ですか?
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。わかりにくい質問でご迷惑をおかけしました。A~K(評価)に分けたいという意味でした。申し訳ありませんでした。

お礼日時:2007/11/12 14:40

一例です。


関数ですが
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"))))))
で、下方へオートフィル。

この回答への補足

 関数にするといくつでもいいのでしょうか?そのあたりも教えていただけるとありがたいです。

補足日時:2007/11/12 16:27
    • good
    • 0
この回答へのお礼

 ご回答、ありがとうございます。なるほど関数で作るとなるとこのような数式になるのですね。一度、チャレンジしたいと思います。

お礼日時:2007/11/12 14:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!