Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


75637 / 76733 ←次へ | 前へ→

【5530】ネストは7個まで
回答  こう E-MAIL  - 03/5/17(土) 20:22 -

引用なし
パスワード
   チョコさん,こんにちわ。
>G1に入力した式です→=IF(B1<3,"1",IF(B1<6,"2",IF(B1<9,"3",IF(B1<12,"4",IF(B1<15,"5",IF(B1<18,"6",IF(B1<21,"7",IF(B1<24,"8",IF(B1<27,"9",IF(B1<32,"10",""""""""""))))))))))
IF文のネストは7個までです。詳細はhelpに記載してます。
>>最大 7 つまでの IF 関数を 真の場合、偽の場合 としてネストすることにより、より複雑なテストを行うことができます。
んで,8個めのIF文でエラーって叱られてますね。

ということで,
上記コードは規則性があるので計算式で求めてみました。
(IF(B1<32,"10"は「B1<30」では?)

G1に =JIS(ROUNDDOWN(B1/3,0)+1)

丸付きの数字ではなく全角数字なので,丸付きにする場合は,
もうちょっと加工が必要ですね。


また,VBAっぽくマクロで行うなら,
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$B$1" Then
    With Range("G1")
     Select Case Target.Value
      Case Is < 3: .Value = "1."
      Case Is < 6: .Value = "2."
      Case Is < 9: .Value = "3."
      Case Is < 12: .Value = "4."
      Case Is < 15: .Value = "5."
      Case Is < 18: .Value = "6."
      Case Is < 21: .Value = "7."
      Case Is < 24: .Value = "8."
      Case Is < 27: .Value = "9."
      Case Is < 32: .Value = "10."
     End Select
    End With
  End If
End Sub
ってな感じですかね。

2 hits

【5527】IF文のエラー チョコ 03/5/17(土) 18:52 質問
【5529】Re:IF文のエラー ichinose 03/5/17(土) 19:58 回答
【5532】Re:IF文のエラー こう 03/5/17(土) 20:28 発言
【5533】Re:IF文のエラー ichinose 03/5/17(土) 20:40 お礼
【5530】ネストは7個まで こう 03/5/17(土) 20:22 回答
【5534】Re:ネストは7個まで チョコ 03/5/17(土) 20:53 質問
【5535】Re:ネストは7個まで ichinose 03/5/17(土) 21:13 発言
【5536】Re:ネストは7個まで チョコ 03/5/18(日) 1:28 お礼

75637 / 76733 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free