2017-06-09 7 views
0

je besoin d'aide pour Excel convertir beetween 2 valeurs, par exemple:(Excel) Convertir et compter beetwean 2 valeurs

Je numéro de valeur « 27-30 » je veux convertir en « 27,28,29, 30"

et valeur char "S-XL" je veux convertir en "S, M, L, XL"

+0

Que voulez-vous la conversion à regarder comme? Veuillez fournir un exemple des données que vous avez et des données que vous voulez dans un format de cellule –

+0

Exemple Cellule A1: "27-30" et Cellule B1: "27,28,29,30" (valeur de cellule B1 que je veux convertir) –

+0

@HengkyST y a-t-il seulement 2 conversions? ou vous avez plus de ce genre? –

Répondre

0

Les numéros 28,29 and so on peuvent être bouclées facilement, mais pour les tailles comme S, M and L, vous avez besoin d'une table de consultation .

Column A contient vos tailles et Column E, la recherche pour non-numeric tailles,

enter image description here

Le code est ici, le résultat sur Column B,

Sub sizes() 
Dim i As Long, j As Long, str As String, rownum As Long 
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row 
    If IsNumeric(Left(Cells(i, 1), InStr(Cells(i, 1), "-") - 1)) Then 
     str = Left(Cells(i, 1), InStr(Cells(i, 1), "-") - 1) 
     For j = Left(Cells(i, 1), InStr(Cells(i, 1), "-") - 1) + 1 To _ 
       Mid(Cells(i, 1), InStr(Cells(i, 1), "-") + 1, 999) 
      str = str & " , " & j 
     Next j 
     Cells(i, 2) = str 
    Else 
     rownum = Application.WorksheetFunction.Match(Left(Cells(i, 1), InStr(Cells(i, 1), "-") - 1), Range("E:E"), 0) 
     str = Cells(rownum, 5) 
     rownum = rownum + 1 
     Do Until (Cells(rownum, 5) = Mid(Cells(i, 1), InStr(Cells(i, 1), "-") + 1, 999)) 
      str = str & " , " & Cells(rownum, 5) 
      rownum = rownum + 1 
     Loop 
     str = str & " , " & Cells(rownum, 5) 
     Cells(i, 2) = str 
    End If 
Next i 
End Sub 
+0

Merci Monsieur Ghowtam, son travail pour moi –