我有来自外部源的数据进入Excel,如下所示:
**Column A** **Column B**
6/26/2017 null
Temperature 27
Pressure 5
6/27/2017 null
Temperature 29
Pressure 4
我想要这样:
**Column A (Date)** **Column B (Temp)** **Column C (PSI)**
6/26/2017 27 5
6/27/2017 29 4
既然数据是通过“全部刷新”输入的,那么我该如何将其推入这样的列?
答案 0 :(得分:0)
如果您确定数据的周期性,则可以使用OFFSET
function。
=OFFSET($A$1; ($E2-1)*3; 0)
填写“列日期”,其中:
答案 1 :(得分:0)
如果要“推送”,则需要VBA之类的东西,尽管可以使用公式(在C2中,复制到D2并成对复制以适合):
=OFFSET(A2,1,1)
,但是如果要删除多余的列和行,则需要将其转换为值(例如,使用选择性粘贴)。而且这不会像数据透视表那样容易地“刷新”。
答案 2 :(得分:0)
尝试从最后一个日期到顶部开始工作。
Dim i As Long
With Worksheets(4)
For i = Application.Match(1E+99, .Range("A:A")) To 1 Step -3
.Cells(i, "C") = .Cells(i + 2, "B").Value
.Cells(i, "B") = .Cells(i + 1, "B").Value
.Cells(i + 1, "A").Resize(2, 1).EntireRow.Delete
Next i
.Cells(1, "A").EntireRow.Insert
.Cells(1, "A").Resize(1, 3) = Array("**Column A (Date)**", "Column B (Temp)", "**Column C (PSI)**")
End With