• ベストアンサー

Excelの関数を使って自動計算。

A1のセルに、 0~4  の値が入力されたら、A2のセルに、“0”を表示 5~14  の値が入力されたら、A2のセルに、“1”を表示 15~24 の値が入力されたら、A2のセルに、“2”を表示 25~34 の値が入力されたら、A2のセルに、“3”を表示 35~44 の値が入力されたら、A2のセルに、“4”を表示 45~54 の値が入力されたら、A2のセルに、“5”を表示 55~64 の値が入力されたら、A2のセルに、“6”を表示 65~74 の値が入力されたら、A2のセルに、“7”を表示 75~84 の値が入力されたら、A2のセルに、“8”を表示 85~94 の値が入力されたら、A2のセルに、“9”を表示 95~100 の値が入力されたら、A2のセルに、“10”を表示 させるように関数を使い式を作るとき、どのようにしたら よろしいでしょうか?

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

  • ベストアンサー
noname#5083
noname#5083
回答No.2

先にshy00さんが紹介されてますが、twinkle_lightさんの場合にあてはめて説明します。 まず、任意の箇所に、下記のような2行11列の表を作成します。 0,5,15,25,35,45,55,65,75,85,95 0,1,2,3,4,5,6,7,8,9,10 次に、セルA2に下記の関数を入力します。2番目の引数(表と記載している箇所)に、上記の表の参照を入力します。 =HLOOKUP(A1,表,2,TRUE) 例えば、D1からN2に表を作成したとすると、 =HLOOKUP(A1,D1:N2,2,TRUE) となります。 詳細は、HLOOKUPのヘルプを見て下さい。 この関数は、括弧内の最後の引数“TRUE”がポイントになります。

その他の回答 (9)

  • TUNE0040
  • ベストアンサー率26% (220/842)
回答No.10

=ROUND(INT(A1)/10,0) でどうでしょうか。 A1のセルが必ず整数値なら INT(A1)は単にA1でOKです。

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.9

VBAでの回答。A1:K1までコードを(数値)振っています。数値文字にするならCells(2, j) ="'" & b(i)に変える。短くを心がけました。 Sub test01() Worksheets("sheet1").Select a = Array(5, 15, 25, 35, 45, 55, 65, 75, 85, 95, 101) b=Array"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10") For j = 1 To 11 For i = 0 To 10 If Cells(1, j) < a(i) Then Cells(2, j) = i Exit For End If Next i Next j End Sub

  • shoyosi
  • ベストアンサー率46% (1678/3631)
回答No.8

 A2に =INT((A1+5)/10) でも表示できます。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.7

こんにちは。 IFのネスト制限(7回)を回避するため、55未満と55以上で区切ってネストしてます。ベタ書きです。 =IF(A1<55,IF(A1<0,"",IF(A1<5,0,IF(A1<15,1,IF(A1<25,2,IF(A1<35,3,IF(A1<45,4,5)))))),IF(A1<65,6,IF(A1<75,7,IF(A1<85,8,IF(A1<95,9,IF(A1<101,10,"")))))) ユーザー関数で =hoge(A1) の方がスマートですが。 Function Hoge(r As Range) As Integer  Select Case r.Value  Case 0 To 4: Hoge = 0  Case 5 To 14: Hoge = 1  Case 15 To 24: Hoge = 2     ・     ・  End Select End Function

  • vbafriend
  • ベストアンサー率47% (17/36)
回答No.6

初めまして。マクロになりますが、コピー&ペーストすれば簡単に実行することが出来ますので、もしよろしければ、以下のように操作してみて下さい。 ・新規ブックを立ち上げ、ALT+F11キーを押してVBE画面を表示させ、画面左上にVBAProjectと書かれている下のThidWorkbookをダブルクリックして表示された右側の白い部分に、下記のコードをコピー&ペーストする。 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Target.Column <> 1 Then Exit Sub Application.EnableEvents = False Select Case Target.Value Case 0 To 4 Target.Offset(0, 1).Value = 0 Case 5 To 14 Target.Offset(0, 1).Value = 1 Case 15 To 24 Target.Offset(0, 1).Value = 2 Case 25 To 34 Target.Offset(0, 1).Value = 3 Case 35 To 44 Target.Offset(0, 1).Value = 4 Case 45 To 54 Target.Offset(0, 1).Value = 5 Case 55 To 64 Target.Offset(0, 1).Value = 6 Case 65 To 74 Target.Offset(0, 1).Value = 7 Case 75 To 84 Target.Offset(0, 1).Value = 8 Case 85 To 94 Target.Offset(0, 1).Value = 9 Case 95 To 100 Target.Offset(0, 1).Value = 10 End Select Application.EnableEvents = True End Sub A列に数字を入力してみて下さい。貴方様の思い通りの動作を確認できると思います。 不都合な点・ご不明な点等がございましたら、お気軽にお知らせ下さい。

  • siriusb
  • ベストアンサー率53% (33/62)
回答No.5

文字通り、A2セルに、 =ROUND(A1/10,0)です。 ()の中は、A1セルを10で割るという意味です。 つまり、A1の次に/(スラッシュ)です。 Aと1/10ではありません。 入力規則は設定しなくてもかまいません。

  • siriusb
  • ベストアンサー率53% (33/62)
回答No.4

↓ごめんなさい。入力規則の最大値は「100」です。

twinkle_light
質問者

補足

すいませーん。 実際に式を教えてください。 無知ですみません。

  • siriusb
  • ベストアンサー率53% (33/62)
回答No.3

A2セルに ROUND(A1/10,0) とし、念のためA1セルに、 [データ]→[入力規則]で、入力値の種類として「整数」(あるいは「小数点数」など必要に応じる)、データとして「次の値の間」とし、最小値として「0」、最大値として「10」を設定すればいいと思います。

twinkle_light
質問者

補足

すいませーん。 実際に式を教えてください。 無知ですみません。

  • shy00
  • ベストアンサー率34% (2081/5977)
回答No.1

以前、煮た質問がありましたのでそちらを参考になさってください http://oshiete1.goo.ne.jp/kotaeru.php3?q=428485

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=428485