我使用上面列出的所有三个电子表格程序,我相信我的问题可以回答相同或类似的三个问题。
在我的工作表上,我有一个顶行的列标题。第二行是对应于列标题的数据,但是一些单元格可以是空的,也可以不是空的。我想在第二行中转置数据,以便新列完全忽略空单元格。
例如,如果我在连续单元格中有一个值为“A”,NULL,“C”,“D”的行,我想要转置使得新列显示为“A”,“C”,“D”与NULL没有空单元格。
希望我的描述是描述性的。谢谢。
我使用上面列出的所有三个电子表格程序,我相信我的问题可以回答相同或类似的三个问题。
在我的工作表上,我有一个顶行的列标题。第二行是对应于列标题的数据,但是一些单元格可以是空的,也可以不是空的。我想在第二行中转置数据,以便新列完全忽略空单元格。
例如,如果我在连续单元格中有一个值为“A”,NULL,“C”,“D”的行,我想要转置使得新列显示为“A”,“C”,“D”与NULL没有空单元格。
希望我的描述是描述性的。谢谢。
Answers:
给定一个以行开头并以列结尾的具体示例,我会以相反的方式执行相同的步骤,尽管我不喜欢以过滤表结束的想法。如果您可以对数据进行排序(即顺序无关紧要),那么可以将所有空白分配到一个可以删除行的位置。
无论如何,我建议使用高级过滤器更好的全方位解决方案: 选择您的原始数据行,复制,在新工作表上的某处选择一个单元格,其上方至少有一个空单元格,粘贴>粘贴特殊,勾选“转置”,好的
现在你有一个有差距的专栏。
在它上面的单元格中,给列添加标签,比如“数据”。使其变为粗体(Ctrl-B),以便Excel发现这是一个标题,即使它是文本,就像列的其余部分一样。
在某个地方的另一个单元格中(例如右边的两个单元格),键入相同的标签,并在星号下面的单元格中输入(* - 后面的通配符)。 选择包含所有间隙和标题的列
转到数据功能区>排序和筛选组,然后单击“高级筛选”。
勾选“复制到其他位置”
检查“列表范围”是否包含您选择的数据列。
单击“条件范围”旁边的“重新编辑”按钮,然后使用标题和通配符选择之前创建的两个单元格
对于“复制到”范围,选择此工作表上的任何单元格,例如右侧的几列。
单击确定。
任务完成。您现在有一组新的连续数据,您可以删除其他列。
请注意,您不能使用高级过滤器将新列表复制到另一个工作表,除非您首先从该工作表开始,然后返回以选择数据和条件。对于快速而肮脏的方法,这要简单得多。
如果没有宏编程,我无法想到这样做的方法,所以我不确定Google Docs或OpenOffice,但这是在Excel中实现它的一种方法。
这个宏假定:
要使用宏,请在Sheet1上选择要转置的行,然后执行具有高亮显示的行的宏。结果应该复制到Sheet2。
Sub CopyNonNulls()
Dim DestinationCellAddress As String
DestinationCellAddress = "A1"
Dim CurrentCellAddress As String
CurrentCellAddress = DestinationCellAddress
For Each rw In Selection.Rows
For Each c In rw.Cells
If c.Value <> "" Then
Worksheets("Sheet2").Range(CurrentCellAddress).Value = c.Value
CurrentCellAddress = Worksheets("Sheet2").Range(CurrentCellAddress).Offset(1, 0).Address
End If
Next
CurrentCellAddress = Worksheets("Sheet2").Range(DestinationCellAddress).Offset(0, 1).Address
Next
Worksheets("Sheet2").Select
End Sub
您可以通过Google Spreadsheets中的TRANSPOSE功能执行此操作。在这里找到他们如何做的解释: http://docs.google.com/support/bin/answer.py?hl=en&answer=71291