2017-06-15 242 views
0

我想在SAS中自動化一堆計算,最終在Excel中做一個圖表。在這個過程中,我有日期作爲列名。所以根據我使用這種格式的日期排序它們 - yymmn6。格式得到例如201604年,月,以便我可以按日期排序(dd始終爲01)。並添加了一個前綴C_。Sas日期格式-yymmn6。在excel中不被識別。什麼是最簡單的出路?

 C_201406 C_201407 C_201408 C_201409 C_201410 .... 
MAX  8  5.681818 4.291845 3.755725  2.281169 .... 
… 

我按照這個順序排列所有東西。我準備好了所有的計算。當我將數據粘貼到Excel中時,我刪除了前綴C_。日期無法正確識別。例如,201406被認爲是6/5/2451。 對於我的圖表,我希望以這種格式6月14日。 我不確定是否很容易在Excel中進行更改或者最初在SAS中進行更改,並且還會按順序排列。我想知道如何做到這一點,以日期爲Jun-14(mmm-YY)的格式最終實現?

+0

爲了您的變量,創建一個SAS LABEL顯示爲俊14。然後,當您導出時,使用LABEL選項將標籤寫入Excel中,而不是變量名稱。在這種情況下,您可能會跳過刪除C_選項。如果您需要代碼幫助,請回復並稍後再幫助,如果有人尚未提供幫助。 – Reeza

+0

我不確定你的整個過程是什麼樣子,具體取決於你如何處理數據,你在哪裏添加標籤可能會使這個過程變得非常簡單或者稍微多一些。也就是說,如果在某個時候您有一個移調,那麼IDLABEL選項將使這變得非常簡單。 – Reeza

回答

0

這裏有兩個修理例程。第一個循環通過每個單元,隨着它的進行修復它們;第二個修復第一個單元格並將其用於一系列填充。

enter image description here

Sub wqewhgwq() 
    Dim yymmm6 As Range 
    With Worksheets("sheet5") 
     With .Range(.Cells(1, "B"), .Cells(1, "B").End(xlToRight)) 
      For Each yymmm6 In .Cells 
       yymmm6 = DateSerial(Mid(yymmm6.Value2, 3, 4), Right(yymmm6.Value2, 2), 1) 
      Next yymmm6 
      .NumberFormat = "mmm-yy" 
     End With 
    End With 
End Sub 

Sub fgsaewrt() 
    With Worksheets("sheet5") 
     With .Range(.Cells(1, "B"), .Cells(1, "B").End(xlToRight)) 
      .Cells(1) = DateSerial(Mid(.Cells(1).Value2, 3, 4), Right(.Cells(1).Value2, 2), 1) 
      .NumberFormat = "mmm-yy" 
      .DataSeries Rowcol:=xlRows, Type:=xlChronological, Date:=xlMonth, Step:=1 
     End With 
    End With 
End Sub 

enter image description here