excel中如何应用函数将符合条件的全部列出来?

excel中如何应用函数将符合条件的全部列出来?,第1张

假定A列有100行数据,B列有200行数据,均从A1开始,要求把A列中包含在B列的数据列出来。

公式:=index(a:a,small(if(countif(b$1:b$200,a$1:a$100),row($1:$100),4^8),row(a1)))&"" 该公式数组公式,需要按组合键ctrl+shift+enter结束公式,下拉填充。

输出:

由于数组公式是对数组进行运算,数组可以是一维的也可以是二维的。一维数组可以是垂直的也可以是水平的。经过运算后,得到的结果可能是一维的,也可能是多维的,存放在不同的单元格区域中。

在公式或函数中使用数组常量时,其它运算对象或参数应该和第一个数组具有相同的维数。必要时,Microsoft Excel 会将运算对象扩展,以符合 *** 作需要的维数。每一个运算对象的行数必须和含有最多行的运算对象的行数一样,而列数也必须和含有最多列数对象的列数一样。

例如: = SUM({1,2,3}+{4,5,6})内的第一个数组为1×3,得到的结果为1+2+3 和 4+5+6 的SUM,也就是21。如果将公式写成 = SUM({1,2,3}+4),则第二个数据并不是数组,而是一个数值,为了要和第一个数组相加,Excel 会自动将数值扩充成1 ×3 的数组。使用=SUM({1,2,3}+{4,4,4})做计算,得到的结果为1+4、2+4和3+4的和, 即18。

将数组公式输入单元格区域中时,所使用的维数应和这个公式计算所得数组维数相同。这样,Microsoft Excel 才能把计算所得的数组中的每一个数值放入数组区域的一个单元格内。

如果数组公式计算所得的数组比选定的数组区域还小,则 Microsoft Excel会将这个数组扩展,以便将它填入整个数组区域内。例如:={1,2;3,4}2扩充后的公式就会变为={1,2;3,4}{2,2;2,2},则相应的计算结果为“2,4,6,8”。再如:输入公式={1,2;3,4}{2,3}扩充后的公式就会变为={1,2;3,4}{2,3;2,3} ,则相应的计算结果为“2,6,6,12”。

如果 Microsoft Excel 将一个数组扩展到可以填入比该数组公式大的区域内,而没有扩大值可用的单元格内,这样就会出现#N/A错误值。

例如:={1,2;3,4}{1,2,3} 扩充后的公式就会变为={1,2,#N/A;3,4,#N/A}{1,2,#/A;12#N/A} ,而相应的计算结果为“2,4,#N/A,4,6,#N/A”。

如果数组公式计算所得的数组比选定的数组区域还要大,则超过的值不会出现在工作表上。

由于一个单元格内只能储存一个数值,所以当结果是一组数据时,单元格只返回第一个值,,在其他不同的单元格上能够看到不同元素参与运算得到的不同结果。这一点正是我们所需要的。

因为再公式中选择显示公式或者格式为文本格式。

1、电脑打开Excel表格,输入公式后,公式只显示公式不计算。

2、工具栏中点击进入公式页面。

3、进入公式页面后,点击工具栏中的取消显示公式。

4、取消显示公式后,公式就自动计算了。

可以使用vlookup函数来实现提问要求。 *** 作步骤如下:

1、打开一个excel文件:

2、根据需要输入数据,这里根据提问模拟输入了一些数据:

3、需要根据提问要求,先提取非重复的姓名数据,在D列输入公式:

4、输入公式完成后,点击回车下拉填充,可以看到提取出来了不重复的姓名。

5、根据提问需要在E2单元格输入公式=INDEX($B$2:$B$99,SMALL(IF($A$2:$A$99=$D2,ROW($A$1:$A$6),98),COLUMN(A2)))&""

6、输入完成后点击回车,向下拉填充可以得到答案:

问题1、比较简单的办法就是:

还是在一个单元格内求最值。假如你不想它显示/打印,就把它放到另一Sheet或隐藏都

可以。

然后,对原始数据区域用条件格式,即等于最值的单元格显示为特定的格式。

数据可以随时加入、更新没问题。

还有其它办法,都比这要复杂一些。

问题2、

1、在定义模板公式的时候,有意识地将区域选大一些,如第1例中,可选整个工作表求最值,这样当新数据加入后,不用改变公式。

2、数据插入有技巧,如果是手工输入没问题,粘贴数据时要注意不能破坏原有的公式。

3、如果你会写宏,可以考虑用用代码实现自动化

4、另外选项中有参数控制。

见附件

跨表的函数

 

 

D12=INDEX(A:A,SMALL(IF(ISNUMBER(FIND($C$12,$A$1:$A$6)),ROW($A$1:$A$6),4^8),ROW(A1)))&""

同时按CTRL  SHIFT  回车键,下拉6行

 

 

C13=D12&D13&D14&D15&D16

 

Function 多项查询(a As Range, b As Range, c As String, Optional ByVal fgf As String = "|")

For i = 1 To aCells(1, 1)End(xlDown)Row Step 1

' If aCells(i, 1) = "" Then Exit For

' If aCells(i, 1) = c And InStr(多项查询, bCells(i, 1)) = 0 Then 多项查询 = 多项查询 & fgf & bCells(i, 1) '去重

If aCells(i, 1) = c Then 多项查询 = 多项查询 & fgf & bCells(i, 1)

Next

多项查询 = Mid(多项查询, 2)

If 多项查询 = "" Then 多项查询 = "不缺"

End Function

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存