2013-05-10 5 views
1

것은 내가 같은 값을 가진 두 개의 열이 (문자열 검색) :고정 날짜는

5 - 11 octubre        2011 
5 - 11 octubre        2011 
5 - 11 octubre        2011 
12 - 18 diciembre       2011 
30 noviembre - 6 diciembre     2012 
30 noviembre - 6 diciembre     2012 
18 - 24 septiembre_2012     2012 
18 - 24 septiembre_2012     2012 
22 - 28 abril_2013       2013 
22 - 28 abril_2013       2013 

내가 마지막 날을 가지고 같은 하나 개의 컬럼에 함께 넣어하려는 :

2011/10/11 
2011/10/11 
2011/10/11 
2011/12/18 
2011/12/06 
2011/12/06 
2012/09/24 
2012/09/24 
2013/04/28 
2013/04/28 

하지만 그렇게 할 방법을 찾을 수 없습니다. 아무도 나를 도울 수 있습니까?

는 지금은이 있습니다

Sub Data() 
With ActiveSheet 
LASTROW = .Cells(.Rows.Count, "A").End(xlUp).Row 
End With 

    For b = LASTROW To 1 Step -1 
     Cells(b, 4) = Application.Clean(Application.Trim(Cells(b, 4))) 
    Next 




For i = 1 To LASTROW 

Valor = Right(Range("D2").Offset(i, 0).Value, 12) 
Numero = Right(Range("D2").Offset(i, 0).Value, 4) 

If InStr(1, Valor, "enero") > 0 Then 
Range("E2").Offset(i, 0).Value = "Enero" 
End If 

If InStr(1, Valor, "febrero") > 0 Then 
Range("E2").Offset(i, 0).Value = "Febrero" 
End If 

If InStr(1, ActiveSheet.Range("D2").Offset(i, 0).Value, "marzo") > 0 Then 
Range("E2").Offset(i, 0).Value = "Marzo" 
End If 

If InStr(1, ActiveSheet.Range("D2").Offset(i, 0).Value, "abril") > 0 Then 
Range("E2").Offset(i, 0).Value = "Abril" 
End If 

If InStr(1, ActiveSheet.Range("D2").Offset(i, 0).Value, "mayo") > 0 Then 
Range("E2").Offset(i, 0).Value = "Mayo" 
End If 


If InStr(1, ActiveSheet.Range("D2").Offset(i, 0).Value, "junio") > 0 Then 
Range("E2").Offset(i, 0).Value = "Junio" 
End If 

If InStr(1, ActiveSheet.Range("D2").Offset(i, 0).Value, "julio") > 0 Then 
Range("E2").Offset(i, 0).Value = "Julio" 
End If 

If InStr(1, ActiveSheet.Range("D2").Offset(i, 0).Value, "agosto") > 0 Then 
Range("E2").Offset(i, 0).Value = "Agosto" 
End If 

If InStr(1, ActiveSheet.Range("D2").Offset(i, 0).Value, "septiembre") > 0 Then 
Range("E2").Offset(i, 0).Value = "Septiembre" 
End If 

If InStr(1, ActiveSheet.Range("D2").Offset(i, 0).Value, "octubre") > 0 Then 
Range("E2").Offset(i, 0).Value = "Octubre" 
End If 

If InStr(1, ActiveSheet.Range("D2").Offset(i, 0).Value, "noviembre") > 0 Then 
Range("E2").Offset(i, 0).Value = "Noviembre" 
End If 

If InStr(1, ActiveSheet.Range("D2").Offset(i, 0).Value, "diciembre") > 0 Then 
Range("E2").Offset(i, 0).Value = "Diciembre" 
End If 
Next i 

End Sub 

"NUMERO는"다수의 경우 내가 검사에 대해 생각하고하고 있는지, 내가 '돈합니다 (엉망 날짜가 I에서 D 연도에) 당신이 나를 도울 수 있다면 ...

+0

엑셀 공식이 당신에게 어울리겠습니까? – Jerry

답변

2

IF 엑셀 공식을 사용하는 것은 괜찮습니다. 날짜 범위는 다음과 같이 가정합니다. 셀 A1의 연도와 셀 B1의 연도 :

=(MID(A1,FIND("-",A1)+2,IFERROR(FIND("_",A1)-FIND("-",A1)-2,30))&" "&B1)*1 

이것은 기본적으로 -을 찾고 날짜와 월을 얻으려는 경우 _에 멈추고 그 번호를 발견하여 연을 연결합니다. *1은 문자열을 number로 변환하는 것이므로 수식이있는 열의 형식을 yyyy/mm/dd으로 지정하면됩니다.

+0

+1에 @jerry. 우아한 답변! –