使用空格将行转换为列

我有一个电子表格,其中一列和值如下:

A B C * D E * F G H I 

*表示空单元格。 无论如何,我可以把它看作是以下每个人在不同的单元格?

 1 2 3 DE FGHI 

我得到这个=IF(ISBLANK(A12),TRANSPOSE(A13:A23),"") ,这有助于范围设置为10.如何设置它,以便在A13之后查找下一个空单元格并回溯一个单元格?

谢谢,

JJ

没有可以执行此任务的内置函数。 我已经创build了一个用户函数,应该能够做到这一点。 为了正常工作,input数据应该在单个列中,空单元定义转置输出matrix的“换行符”。

在VBA模块中包含以下代码。

 Option Explicit Function TransposeSpecial(InpRng As Range) Dim Cell As Range Dim c1 As Integer, c2 As Integer, i As Integer, j As Integer, k As Integer Dim TArr() If TypeName(InpRng) <> "Range" Then Exit Function 'Get dimentions For Each Cell In InpRng If Cell.Value <> vbNullString Then i = i + 1 Else c1 = c1 + 1 If i > c2 Then c2 = i i = 0 End If Next Cell c1 = c1 + 1 If i > c2 Then c2 = i i = 1 j = 1 'Defines the dimention of the output array ReDim TArr(1 To c1, 1 To c2) 'Writes to array For Each Cell In InpRng If Cell.Value <> vbNullString Then TArr(i, j) = Cell.Value j = j + 1 Else For k = j To c2 TArr(i, k) = vbNullString Next k i = i + 1 j = 1 End If Next Cell If j <= c2 Then For k = j To c2 TArr(i, k) = vbNullString Next k End If TransposeSpecial = TArr End Function 

现在,通过使用这个函数,以单个数据列作为input,在一个范围(至less)足够大以包含整个输出matrix,您应该得到所需的输出。 请记住,在处理应返回matrix的函数时,请使用Ctrl + Shift + Enter

在这里输入图像说明