• ベストアンサー

エクセル2010でこのような表示は出来ますか??

作成したいのは評価表です。1シート1人分。列は考課項目/行は考課点です。 A1に考課項目1・A2に考課項目2・・・以下50項目続きます。 B1~F1に考課点として5~1を入力してあります。 考課が5~1から一つだけ選択し、背景色を塗りつぶします。 その結果をG1に表示させたいのです。 但し5~1ではなく、5の場合は4で4の場合は3で・・・1の場合は0です。 EX)考課項目1→5/考課項目2→5の場合、B1の考課点4のセルを塗りつぶします。 でG1に考課点を8で表示させたいのです。 宜しくお願い致します。

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

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

手順: ALT+F11を押す 現れた画面で挿入メニューから標準モジュールを挿入する 現れたシートに下記をコピー貼り付ける function sum1(byval Target as excel.range)  dim h as range  application.volatile  for each h in target  if h.interior.colorindex <> xlnone then  sum2 = sum2 + application.max(0, 6 - h.column)  end if  next end function ファイルメニューから終了してエクセルに戻る で。 ご相談の間違い: >考課項目1→5/考課項目2→5の場合、B1の考課点4のセルを塗りつぶします。 正しくは: 考課項目1→5/考課項目2→5の場合、B1とB2の考課点4のセルを塗りつぶします。 >でG1に考課点を8で表示させたいのです。 G1に =sum1(B1:F2) のように計算する 実際問題としては,効果項目1の得点をまず1行目に出し,続いて項目2の得点も2行目に出してから最後に別の場所で全体の特定合計を集計した方がベターです。 でも回答したやり方は,一発でも集計できるように最初から作ってあります。 また最初に回答したとおり,色を塗ったあとは必ずF9を押して再計算を行わせなければいけませんのでうっかり忘れたりとかしないこと。

その他の回答 (3)

回答No.4

ANo3の者ですが、一部訂正します。 G1の入力ですが =SUM(H1:H9)-50 と訂正します。

回答No.3

マクロ(VBA)を使用する例がでているようなので、マクロ(VBA)を利用しないで行う方法を例示します。 ただし、この方法ではマクロ(VBA)を使う場合と違いひとつ余分にセルを利用することとなりますがご了承ください。 なお、私の環境がエクセル2003しかないため、表示内容など一部違いがあるかもしれませんが柔軟に対応頂ければありがたく存じます。 H列を考課点数を選ぶための専用列とします。 H列(もしくはH1~H50)を選択して、入力規則を設定します。  入力値の種類:リスト  データ:次の値の間  元の値:1,2,3,4,5 とします。 B列からF列を選択して(もしくはB1~F50)を選択して条件付書式を設定  条件1を 「数式が」 「=$H1=B1」 として、書式ボタンを押す  書式でパターンを選択して塗りつぶしたい色にする。 G1に =H1-1と入力してG50までオートフィル これでマクロ(VBA)無しでご希望に近いことが出来ると思います。  

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.2

マクロに Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim r_index As Integer Dim c_index As Integer Dim res As Integer Dim total As Integer total = 0 For r_index = 1 To Range("A1").End(xlDown).Row res = 0 For c_index = 1 To 5 If Cells(r_index, c_index).Interior.ColorIndex = 3 Then res = Cells(r_index, c_index).Value End If Next c_index total = total + res Next r_index Range("G1").Value = total End Sub と記述してください。

関連するQ&A