【发布时间】:2018-03-22 05:20:06
【问题描述】:
我有一个 sql 查询并想在 Excel VBA 中进行复制。我在使用多个 case 语句时遇到问题
示例列
column(a) - segment_nbr
column(b) - ltv
segment_nbr ltv
1 2.1526521
4 3.01348283
1 1.49385324
1 1.84731871
1 1.29541322
1 0.55659018
2 2.33690417
1 1.34068404
2 1.54078719
1 0.74087837
3 1.93278303
1 1.38347042
4 1.64194326
我想构建一个函数来复制以下嵌套 if /case 公式的示例:
=if(and($A1=1,$B1<=0.9),100.01,IF(and($A1=1,$B1<=2.0),201.01,IF(and($A1=1,$B1<=3.0),-23.26,IF(and($A1=2,$B1<=0.9),-99.98,IF(and($A1=3,$B1<=1.3),199.98, IF(and($A1=4,$B1<=0.44),-32.43,IF(and($A1=4,$B1<=1.6),160.9,"" )))
我尝试了以下但没有工作:它没有使用 segment_nb 参数。
有什么想法可以纠正吗?
Function ltv_w(segment_nbr, ltv )
Select Case ltv
Case Is <= 0.9 And segment_nbr = 1
ltv_w = 100.01
Case Is <= 2.0 And segment_nbr = 1
ltv_w = 201.01
Case Is <= 3.0 And segment_nbr = 1
ltv_w = -23.26
Case Is <= 0.9 And segment_nbr = 2
ltv_w = -99.98
Case Is <= 1.3 And segment_nbr = 3
ltv_w = 199.98
Case Is <= 0.44 And segment_nbr = 4
ltv_w = -32.43
Case Is <= 1.6 And segment_nbr = 4
ltv_w = 160.9
End Select
End Function
【问题讨论】:
-
您的代码对我有用。你如何在工作表中调用你的函数? (公式)
-
是的,我做到了。当我尝试我的原始代码时,它没有进行段更改
标签: vba excel if-statement case