我在单列中给出了很多数字,但是每列之间都有很多数据。有没有一种方法可以将所有数字提取到单个列中,而每个数字都直接位于该列中另一个数字的下方?
答案 0 :(得分:1)
这是一个可以满足您的需求的示例。
在 A 列中包含数字,文本值和空值的数据的情况下,请在 C1 中输入:
=IFERROR(INDEX(A:A, AGGREGATE(15, 6, ROW($1:$999)/(ISNUMBER(A:A)), ROW(1:1))),"")
并向下复制:
如您所见,该公式基本上可以过滤掉所有文本值。
答案 1 :(得分:0)
使用vba: 将此粘贴到标准模块中并运行
Sub ListNumbers()
Dim mix As Range, num As Range, c As Range, lst As Range, i As Integer
Set mix = Application.InputBox("Select a mixed range", "Mixed", Range(Cells(1), Cells(1048576, 1).End(xlUp)).Address, Type:=8)
Set res = Application.InputBox("Select first cell for result", "Result", Cells(1048576, 2).End(xlUp).Offset(1).Address, Type:=8)
For Each c In mix
If IsNumeric(c) = True Then
res.Offset(i).Value = c.Value
i = i + 1
End If
Next c
If MsgBox("Do you wan´t to sort the result", vbYesNo, "Sort") = vbYes Then
Set lst = res.Resize(i)
lst.Sort key1:=lst, order1:=xlAscending, Header:=xlNo
End If
End Sub