VB中的CHOOSE函数问题

VB中的CHOOSE函数问题,第1张

返回Blue

Weekday函数返回一个日期的星期

2007,5,1是星期二所以WeekDay函数返回3(VB把星期天做为一星期的第一天)

Choose函数第一个参数是选择第几个,其他的都是待选的参数列表了

选第三项BLUE

Private Sub Command1_Click()

  Dim n As Integer

  n = Text1

  Select Case n

  Case 1: s = "星期一"

  Case 2: s = "星期二"

  Case 3: s = "星期三"

  Case 4: s = "星期四"

  Case 5: s = "星期五"

  Case 6: s = "星期六"

  Case 7: s = "星期日"

  End Select

  Text2 = s

End Sub

Private Sub Command2_Click()

  Dim n As Integer

  n = Text1

  s = Choose(n, "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日")

  Text3 = s

End Sub

(一)函数

1定义

根据给定的索引值,从参数串中选出相应值或 *** 作

2语法

CHOOSE(index_num,value1,[value2],…)

3参数

Index_num:指出所选参数值在参数表中的位置。Index_num必须是介于1到254之间的数值,或者是返回值介于1到254之间的引用或公式

Value1:value1,value2…是1到254个数值参数、单元格引用、已定义名称、公式、函数,或者是CHOOSE从中选定的文本参数

(二)举例

在学生考试成绩统计报表中,对学生成绩进行考评,总成绩大于等于210分显示为合格、小于210分显示为不合格。可以使用CHOOSE函数来设置公式。

①选中F2单元格,在编辑栏中输入公式:=CHOOSE(IF(E2>=210,1,2),"合格","不合格")。按回车键,即可判断学生“李丽”的总成绩是否合格。

②选中F2单元格,向下复制公式,即可判断其他学生的总成绩是否合格。

(三)公式解析

先判断E2单元格中的数值249是否大于等于210,返回TRUE,IF函数TRUE返回1,显示公式=CHOOSE(1,"合格","不合格"),Index_num:指出所选参数值在参数表中的位置。则显示出结果“合格”

如果 index_num 为一个数组 ,则在计算函数 CHOOSE 时,将计算每一个值。 函数 CHOOSE 的数值参数不仅可以为单个数值,也可以为区域引用。 例如,下面的公式:

=SUM(CHOOSE(2,A1:A10,B1:B10,C1:C10))相当于:

=SUM(B1:B10)然后基于区域 B1:B10 中的数值返回值。

函数 CHOOSE 先被计算,返回引用 B1:B10。然后函数 SUM 用 B1:B10 进行求和计算。即函数 CHOOSE 的结果是函数 SUM 的参数。

可以利用像SUM函数、lookup函数、VLOOKUP+CHOOSE函数、OFFSET+MATCH函数、INDIRECT+MATCH函数的组合等方式来对EXCEL里的内容进行精确查找。

如下图所示,根据第9行的产品和型号,从上面表中查找“销售数量”,结果如C10所示:

SUM函数:

公式{=SUM((A2:A6=A9)(B2:B6=B9)C2:C6)}

公式简介:使用(条件)(条件)因为每行符合条件的为0,不符合的为1,所以只有条件都符合的为非零数字。所以SUM求和后就是多条件查找的结果

SUMPRODUCT函数:

公式:=SUMPRODUCT((A2:A6=A9)(B2:B6=B9)C2:C6)

公式简介:和SUM函数用法差不多,只是SUMPRODUCT函数不需要数组运算

MAX函数:

{=MAX((A2:A6=A9)(B2:B6=B9)C2:C6)}

SUM是通过求和把符合条件的提出来,这里是使用MAX提取出最大值来完成符合条件的值提取。

lookup函数:

公式1=LOOKUP(A9&B9,A2:A6&B2:B6,C2:C6)

公式简介:LOOKUP函数可以直接进行数组运算。查找的连接起来,被查找区域也连接起来。

公式2:=LOOKUP(1,0/((A2:A6=A9)(B2:B6=B9)),C2:C6)

公式3=LOOKUP(1,0/((A2:A6&B2:B6)=(A9&B9)),C2:C6)

公式4=LOOKUP(1,1/(((A2:A6=A9)+(B2:B6=B9))=2),C2:C6)

MIN+IF函数:

公式=MIN(IF((A2:A6=A9)(B2:B6=B9),C2:C6))

SUM+IF函数:

公式=SUM(IF(A2:A6=A9,IF(B2:B6=B9,C2:C6,0),0))

INDEX+MATCH函数组合:

公式1:{=INDEX(C2:C6,MATCH(A9&B9,A2:A6&B2:B6,0))}

公式2:{=INDEX(C2:C6,MATCH(1,(A9=A2:A6)(B9=B2:B6),0))}

OFFSET+MATCH函数:

公式=OFFSET(C1,MATCH(A9&B9,A2:A6&B2:B6,0),)

INDIRECT+MATCH函数:

公式 =INDIRECT("C"&MATCH(A9&B9,A1:A6&B1:B6,0))

VLOOKUP+CHOOSE函数:

公式 :=VLOOKUP(A9&B9,CHOOSE({1,2},A2:A6&B2:B6,B2:C6),2,0)

HLOOKUP+TRANSPOSE+CHOOSE函数:

公式=HLOOKUP(A9&B9,TRANSPOSE(CHOOSE({1,2},A2:A6&B2:B6,B2:C6)),2,0)

VLOOKUP+IF函数:

公式1 =VLOOKUP(A9&B9,IF({1,0},A2:A6&B2:B6,B2:C6),2,0)

公式2=VLOOKUP(A9&"|"&B9,A31:D35,4,0)‘添加辅助列

SUMIFS函数:

excel2007中开始提供的函数SUMIFS

=SUMIFS(C1:C6,A1:A6,A9,B1:B6,B9)

数据库函数:

=DSUM(A1:C6,3,A8:B9)

=DGET(A1:C6,3,A8:B9)

=DAVERAGE(A1:C6,3,A8:B9)

=DMAX(A1:C6,3,A8:B9)

=DMIN(A1:C6,3,A8:B9)

=DPRODUCT(A1:C6,3,A8:B9)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12171322.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存