EXCEL如何提取数组中的值?
'自定义公式-按ALT+F11-插入-模块-粘贴代码-将表格另存为启用宏的格式
Function HB(rng, Optional ByVal fgf As String = "|")
For Each cel In rng
If cel <> "" Then p = p & fgf & cel
Next
HB = Mid(p, Len(fgf) + 1)
End Function
输入以下公式,将多个单元格的文本合并
=PHONETIC(C5:N5)
详见附图示例
如果版本比较高,可以使用textjoin函数,合并一下,然后就可以看到了。
如果是低版本的,建议把数组处理一下,用small或者large函数来提取。但是合并数组就不好处理了。
低版本合并数组的话, 可以使用VBA来解决。
Excel怎么用数组公式从一列中提取非空单元格值~
如果Excel工作表的某列中包含一些空单元格,要去掉这些空单元格,将非空单元格内容放到另一列中,最快的方法是通过筛选隐藏空单元格,再复制到其他列中。以下是我为您带来的关于Excel用数组公式从一列中提取非空单元格值,希望对您有所帮助。
Excel用数组公式从一列中提取非空单元格值
如果不使用筛选,还可以用下面的数组公式:
假如数据在A2:A20区域中,将提取后的数据放到B列中,在B2单元格中输入数组公式:
=INDEX($A$2:$A$20,SMALL(IF($A$2:$A$20="","",ROW($A$2:$A$20)-ROW($A$2)+1),ROW($A2)-ROW($A$2)+1))
公式输入完毕后按Ctrl+Shift+Enter结束,然后向下填充公式,直到出现“#NUM!”为止。
说明:
SMALL函数的语法为:
SMALL(array, k)
返回数据集“array”中的第“k”个最小值。
公式中SMALL函数的第一个参数“IF($A$2:$A$20="","",ROW($A$2:$A$20)-ROW($A$2)+1)”产生一个数组:
{1;"";"";4;"";"";7;8;"";"";11;12;13;"";"";"";17;"";19}
该数组中的数字为A2:A20区域中非空单元格对应的位置,而空引号则对应区域中的空单元格。
第二个参数“ROW($A8)-ROW($A$2)+1”根据B列中单元格的位置依次返回“1”、“2”、“3”……
上述数组中,第1个最小值为“1”,第2个最小值为“4”,……。这样就用SMALL函数“去掉”了数组中的空值,最后用INDEX函数返回一列连续的非 空单元格值。本例由于A2:A20区域中只有9个非空单元格,当SMALL函数的第2个参数为“10”时就会出现错误,说明A列中的非空单元格值已返回完毕。
猜你喜欢:
1. excel函数中怎么提取值
2. Excel中进行一列数据乘以固定值的操作方法
3. Excel中实现循环的操作方法
4. excel如何使用数组公式
5. excel 利用函数数组公式实现高级筛选的教程
'打开表格-按ALT+11-点击插入-点击模块-粘贴代码
Function 提取数据(a As Range)
For Each cel In a
If cel * 1 > 5.409 And cel * 1 < 5.509 Then t = t & "," & cel
Next
If t = "" Then
提取数据 = ""
Else
提取数据 = Right(t, Len(t) - 1)
End If
End Function