1

次のような値を持つ2つの列があります。

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

最終日を次のような 1 つの列にまとめたいと思います。

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

しかし、私はそうする方法を見つけることができません。誰でも私を助けることができますか?

今、私はこれを持っています:(めちゃくちゃな日付はDで、年はIです)

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」が数字であるかどうかを確認しようと考えています。数字である場合、メインの文字列から削除する方法がわかりません...助けていただければ...

4

1 に答える 1

2

Excelの数式を使用しても構わない場合は、日付範囲がセル A1 にあり、年がセル B1 にあると仮定して、これを使用できます。

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

これは基本的に、それを見つけ-て使用して日付と月を取得し、_見つかった場合に停止し、それを年に連結します。は*1文字列を数値に変換することであり、式が含まれている列を にフォーマットするだけで済みますyyyy/mm/dd

于 2013-05-10T14:46:11.117 に答える