スピル機能の練習の題材として、ついExcelVBA(しかも最新Ver限定)で作ってしまいましたが、
この後のことも考えればPythonで作るのが正解でしょうね。(ただ、そこまでの義も技もありません。)
VBA
1'for Office365
2Sub sample()
3 Dim fn As String, data As Worksheet, table As Worksheet, arr
4 arr = Split("2018 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017")
5 fn = "data.csv"
6 With Workbooks.Open(fn)
7 Set data = .Worksheets(1)
8 Set table = .Worksheets.Add(, data)
9 With table
10 .Range("B1").Resize(, UBound(arr) + 1).Value = arr
11 .Range("A2").Formula2 = "=TEXT(DATEVALUE(""1999/12/31"")+ROW(OFFSET(A1,0,0,366)),""mm/dd"")"
12 .Range("B2").Formula2 = "=IFERROR(VLOOKUP(DATEVALUE($B$1:$M$1&""/""&TEXT(DATEVALUE(""1999/12/31"")+ROW(OFFSET(A1,0,0,366)),""mm/dd""))," & data.Range("A:B").Address(, , , True) & ",2,FALSE),"""")"
13 With .UsedRange
14 .Resize(, 1).NumberFormatLocal = "@"
15 .Resize(1).NumberFormatLocal = "@"
16 .Offset(1, 1).NumberFormatLocal = "0.0"
17 .Value = .Value
18 End With
19 .Copy
20 End With
21 .Close False
22 End With
23End Sub
24