[過去ログ] Excel総合相談所 140 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
365
(8): 2020/08/17(月)15:36 AAS
お世話なります。VBAを勉強中のものでして

=IF(C2>=80,"優",IF(C2>=70,"良",IF(C2>=50,"可","不")))

これを

Function test(c) As String

If c >= 80 Then
test = "優"
End If
省11
366: 2020/08/17(月)17:50 AAS
>>365
条件達成したらexit function
368: 2020/08/17(月)18:27 AAS
>>365
end ifの次のifで条件もう1回通らせてるからね

elseにしないと
369
(1): 2020/08/17(月)18:35 AAS
>>365
Function test(rng As Range) As String
Dim c As Long
c = rng.Value
If c >= 80 Then
test = "優"
ElseIf c < 80 And c >= 70 Then
test = "良"
ElseIf c < 70 And c >= 50 Then
test = "可"
省5
370: 2020/08/17(月)19:41 AAS
>>365
VBA の Select Case でいいかと
Function test(c) As String
Select Case c
Case Is >= 80
test = "優"
Case Is >= 70
test = "良"
Case Is >= 50
test = "可"
省4
376
(1): 2020/08/18(火)00:33 AAS
>>365
Function test(c) As String
test = WorksheetFunction.HLookup(c, Array(Array(0, 50, 70, 80), Array("不", "可", "良", "優")), 2, True)
End Function

俺からも
可読性いいでしょw
381
(1): 2020/08/18(火)11:52 AAS
>>365
その書き方だと得点の高い方から判定するとおかしくなる
50点以上なら80点でも100点でもみんな可になってしまう
こういう時は低い方から判定すればいい

Function test(c) As String
test = "不"
If c >= 50 Then test = "可"
If c >= 70 Then test = "良"
If c >= 80 Then test = "優"
End Function
384: >>365 2020/08/18(火)17:16 AAS
皆様ありがとうございます。
様々なレスがついて驚きました。
やはり書き方は千差万別なんですね。

関数ばかり触ってきたのでIFのネストが癖になっており
IF〜End IF , IF〜End IFでSelect Caseのような分岐ができると
ばかり思っていました。

ElseIfを知り、無事に(?)自身のなかでの問題が解決しました。

レスをしていただいた皆様、本当に感謝します。
385: >>365 2020/08/18(火)17:27 AAS
因みになんですが、>>378 を試して動いたことに驚きなんですが
原理を解説していただけると幸いです。
MIDで何をどう抜き出しているのかさっぱりで…。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.862s*