CHOOSE(index_num,value1,value2,)
Index_num 必须为 1 到 254
之间的数字,或者是包含数字 1 到 254 的公式或单元格引用;
Value1,value2, 为 1 到 254 个数值参数,CHOOSE用
index_num,从中选择一个数值。
《WPS 表格 *** 作技巧》连载系列文章前面小鱼和大家一起学习到了 VLOOKUP 函数,其表达式为:
下面,我们尝试使用 VLOOKUP 函数解决一个实际问题:有如下两张表格:
接下来,小鱼希望在成本表中找到各个项目的成本,并填入项目表。于是,在项目表成本列录入如下公式:
奇怪的事情发生了, VLOOKUP 函数并未返回计算结果:
而且所有的项目都找不到成本:
之所以所有数据都找不到,是因为我们违背了 VLOOKUP 函数使用的条件: 查找的值必须在查找范围的第一列。 在成本表中,我们查找的项目名称位于最后一列,所以 VLOOKUP 函数返回找不到。
有的读者可能想到:那调换一下成本表中列的顺序,将项目名称移动到第一列不就可以使用 VLOOKUP 了吗?
没错,这个办法可以解决当前的问题。但一般情况下,是不允许我们所以去更改原数据表的。所以呢,接下来小鱼教大家一招 VLOOKUP 的进阶用法: VLOOKUP 函数与 CHOOSE 函数结合,进行逆序查找。
CHOOSE 函数是查询函数中的一员,其表达式为:
即从参数 区域1,区域2,区域3 中选取指定索引的值进行返回。返回值可以是 1 个:
也可以是多个:
一般用于重新建立一个虚拟区间,配合 VLOOKUP 函数进行逆序查找。下面举例说明 CHOOSE 函数的用法。
在上述的空白列录入 CHOOSE 公式:
按 F9 即可查看 CHOOSE 函数返回的虚拟区间(以逗号分隔,返回多组数据):
了解了 CHOOSE 函数的功能,接下来就可以继续文章开头的任务了:首先,在项目表的成本单元格录入 CHOOSE 公式:
选中录入公式,按 F9 ,部分笔记本为 Fn+F9 ,可以看到运算结果中,项目位于金额的前面:
接下来,录入 VLOOKUP 函数完成查找工作:
其中,查找的区域为 CHOOSE 函数返回的区域, CHOOSE 函数将成本表中的成本和项目名称以自己的形式返回,并且项目名称在前,成本在后。
最后,使用自动填充,就可以找到所有项目的成本了:
以上就是本节的全部内容了,我们来总结一下:
你的题目存在错误,+-/,是字符,需用“”标识,且VB中没有题目中的除号,只有用斜杠/。
Private Sub Command1_Click()
Print Choose(3, "+", "-", "", "/")
End Sub
代码运行结果输出值是字符。
Choose 函数,从参数列表中选择并返回一个值。
可以利用像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)
公式:=VLOOKUP(M2,CHOOSE({1,2},$E:$E,$B:B),2,0)
Choose 函数 返回,从参数列表中选择并返回一个值。
*** 作方式:
1查找值:M2
2通过公式CHOOSE({1,2},$E:$E,$B:B,对E列、B列进行前后倒置+赋予身份标识
3CHOOSE({1,2},对“查找值”赋予身份标识
4“2”对应选择返回的值
公式:=lookup(1,0/(find(b2,f$2:f$4)),e$2:e$4)
Choose
函数
从参数列表中选择并返回一个值。
语法
Choose(index,
choice-1[,
choice-2,
[,
choice-n]])
Choose
函数的语法具有以下几个部分:
部分
描述
index
必要参数,数值表达式或字段,它的运算结果是一个数值,且界于
1
和可选择的项目数之间。
choice
必要参数,Variant
表达式,包含可选择项目的其中之一。
说明
Choose
会根据
index
的值来返回选择项列表中的某个值。如果
index
是
1,则
Choose
会返回列表中的第
1
个选择项。如果
index
是
2,则会返回列表中的第
2
个选择项,以此类推。
可以使用
Choose
来查阅一个列表中的项目。例如,如果
index
所指定的值为
3,而
choice-1
=
"one"、choice-2
=
"two"、且
choice-3
=
"three",那么
Choose
将返回
"three"。当
index
代表一选项组中的值时,则这项功能将会特别有用。
即使它只返回一个选项值,Choose
仍然会计算列表中的每个选择项。所以应该注意到这项副作用。例如,当在每个选择项表达式中使用了
MsgBox
函数作为其中的一部分时,每计算一个选择项,就会显示一次消息框。
当
index小于
1
或大于列出的选择项数目时,Choose
函数返回
Null。
如果
index
不是整数,则会先四舍五入为与其最接近的整数。
自己根据这个试一试比别人讲要容易理解。
在B2中设置这个公式后,在A1中输入2,公式单元格就显示公式中从第二个参数起的第2个数20;A1中输入几,公式单元格就显示从第二个参数起的第几个数。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)