This seems to be sufficient:
- I deleted the first column in your sample file
- I removed (...) in cell B10 (now A10, since I deleted the first column)
- I added a new sheet 'Sheet2'.
Sub M_snb()
sn = Sheet1.Cells(1).CurrentRegion
For j = 2 To UBound(sn) - 1
st = Split(sn(j, 2))
For jj = 2 To UBound(st) Step 3
If st(jj) <> 0 Then c00 = c00 & vbLf & Year(st(jj - 2)) & "_" & st(jj - 1) & "_" & st(jj)
Next
Next
sp = Split(c00, vbLf)
With Sheet2
.Cells(1).Resize(UBound(sp) + 1) = Application.Transpose(sp)
.Columns(1).TextToColumns , , , , 0, 0, 0, 0, -1, "_"
.Cells(1).Resize(, 3) = Array("Year", "Coupon", "Principal")
.Cells(1).CurrentRegion.Sort .Cells(1), , , , , , , 1
End With
End Sub
I don't show year/coupon combinations that have a zero value
I fear you overlooked the fact that a year can contain data on several coupons.