- ベストアンサー
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”を表示 させるように関数を使い式を作るとき、どのようにしたら よろしいでしょうか?
- みんなの回答 (10)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
先に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)
=ROUND(INT(A1)/10,0) でどうでしょうか。 A1のセルが必ず整数値なら INT(A1)は単にA1でOKです。
- imogasi
- ベストアンサー率27% (4737/17070)
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)
A2に =INT((A1+5)/10) でも表示できます。
- papayuka
- ベストアンサー率45% (1388/3066)
こんにちは。 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)
初めまして。マクロになりますが、コピー&ペーストすれば簡単に実行することが出来ますので、もしよろしければ、以下のように操作してみて下さい。 ・新規ブックを立ち上げ、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)
文字通り、A2セルに、 =ROUND(A1/10,0)です。 ()の中は、A1セルを10で割るという意味です。 つまり、A1の次に/(スラッシュ)です。 Aと1/10ではありません。 入力規則は設定しなくてもかまいません。
- siriusb
- ベストアンサー率53% (33/62)
↓ごめんなさい。入力規則の最大値は「100」です。
- siriusb
- ベストアンサー率53% (33/62)
A2セルに ROUND(A1/10,0) とし、念のためA1セルに、 [データ]→[入力規則]で、入力値の種類として「整数」(あるいは「小数点数」など必要に応じる)、データとして「次の値の間」とし、最小値として「0」、最大値として「10」を設定すればいいと思います。
補足
すいませーん。 実際に式を教えてください。 無知ですみません。
- shy00
- ベストアンサー率34% (2081/5977)
以前、煮た質問がありましたのでそちらを参考になさってください http://oshiete1.goo.ne.jp/kotaeru.php3?q=428485
補足
すいませーん。 実際に式を教えてください。 無知ですみません。