luuquanghung91
Thành viên mới
- Tham gia
- 25/6/21
- Bài viết
- 9
- Được thích
- 2
chân thành cám ơn bNếu bạn yêu thích truyền thống, thì tôi sẽ sử dụng cột phụ:
bác cho e xin làm bằng mã code nữa đc k?Nếu bạn yêu thích truyền thống, thì tôi sẽ sử dụng cột phụ:
Thích thì chiềubác cho e xin làm bằng mã code nữa đc k?
Sub ABC()
Dim sArr(), Arr&(0 To 99), S, Res(), sCol&, i&, j&
sArr = Sheets("Sheet1").Range("A2:G2").Value
sCol = UBound(sArr, 2)
ReDim Res(0 To sCol, 1 To 2)
For j = 1 To sCol
S = Split(sArr(1, j), ",")
For i = 0 To UBound(S)
Arr(CLng(S(i))) = Arr(CLng(S(i))) + 1
Next i
Next j
For i = 0 To 99
If Res(Arr(i), 2) = Empty Then
Res(Arr(i), 1) = "Muc: " & Arr(i)
Res(Arr(i), 2) = Format(i, "00")
Else
Res(Arr(i), 2) = Res(Arr(i), 2) & "," & Format(i, "00")
End If
Next i
Sheets("Sheet1").Range("E5").Resize(sCol + 1, 2) = Res
End Sub
thak kiu bác ạ e mơi họcThích thì chiều
Mã:Sub ABC() Dim sArr(), Arr&(0 To 99), S, Res(), sCol&, i&, j& sArr = Sheets("Sheet1").Range("A2:G2").Value sCol = UBound(sArr, 2) ReDim Res(0 To sCol, 1 To 2) For j = 1 To sCol S = Split(sArr(1, j), ",") For i = 0 To UBound(S) Arr(CLng(S(i))) = Arr(CLng(S(i))) + 1 Next i Next j For i = 0 To 99 If Res(Arr(i), 2) = Empty Then Res(Arr(i), 1) = "Muc: " & Arr(i) Res(Arr(i), 2) = Format(i, "00") Else Res(Arr(i), 2) = Res(Arr(i), 2) & "," & Format(i, "00") End If Next i Sheets("Sheet1").Range("E5").Resize(sCol + 1, 2) = Res End Sub
thì thử xem.e dùng hàm =CONCATENATE nhưng ghép với nhau thì k bỏ đc những số trùng.
làm sao để ghép dàn 1 và dàn 2 để ra đc dàn 3
Thích thì chiều
Mã:Sub ABC() Dim sArr(), Arr&(0 To 99), S, Res(), sCol&, i&, j& sArr = Sheets("Sheet1").Range("A2:G2").Value sCol = UBound(sArr, 2) ReDim Res(0 To sCol, 1 To 2) For j = 1 To sCol S = Split(sArr(1, j), ",") For i = 0 To UBound(S) Arr(CLng(S(i))) = Arr(CLng(S(i))) + 1 Next i Next j For i = 0 To 99 If Res(Arr(i), 2) = Empty Then Res(Arr(i), 1) = "Muc: " & Arr(i) Res(Arr(i), 2) = Format(i, "00") Else Res(Arr(i), 2) = Res(Arr(i), 2) & "," & Format(i, "00") End If Next i Sheets("Sheet1").Range("E5").Resize(sCol + 1, 2) = Res End Sub
sArr = Sheets("Sheet1").Range("A2:G2").Value
Vâng. Bác có viết đc code mức với số cùng 1 hàng như mẫu của em không ạ. Nếu được làm phiền bác hộ em vớisArr = Sheets("Sheet1").Range("A2:G2").Value
"Sheet1" là tên sheet cần xử lý, hình như là "CT7"
Hình bài #9 và bài #13 khác nhau không biết ý là gì? gởi file excel với kết quả mong muốn mình sẽ chỉnh code lần cuốiÝ em là chạy ra mức 1 cột theo hàng dọc này ý ạ. Của a là thành 2 hàng dọc
Bài đã được tự động gộp:
View attachment 261535
Chỉnh lạiDạ ý em là muốn nhờ bác hộ e chỉnh lại mã code cho dòng mức và số cùng 1 cột ạ ( em bôi đỏ), của bác bây giờ đang là 2 cột riếng. hơi phiền bác thông cảm giúp em
Sub ABC()
Dim sArr(), Arr&(0 To 99), S, Res(), sCol&, i&, k&
sArr = Sheets("CT7").Range("A8:G8").Value
sCol = UBound(sArr, 2)
ReDim Res(0 To (sCol + 1) * 2, 1 To 2)
For k = 1 To sCol
S = Split(sArr(1, k), ",")
For i = 0 To UBound(S)
Arr(CLng(S(i))) = Arr(CLng(S(i))) + 1
Next i
Next k
For i = 0 To 99
k = Arr(i) * 2
Res(k, 2) = Res(k, 2) + 1
If Res(k, 1) = Empty Then
Res(k, 1) = "Muc: " & Arr(i)
Res(k + 1, 1) = Format(i, "00")
Else
Res(k + 1, 1) = Res(k + 1, 1) & "," & Format(i, "00")
End If
Next i
For k = 0 To sCol * 2 Step 2
If Res(k, 2) <> Empty Then
Res(k, 1) = Res(k, 1) & " ( " & Res(k, 2) & " So)"
End If
Next k
Sheets("CT7").Range("C9").Resize((sCol + 1) * 2) = Res
End Sub
em cám ơn bác..........Chỉnh lại
Mã:Sub ABC() Dim sArr(), Arr&(0 To 99), S, Res(), sCol&, i&, k& sArr = Sheets("CT7").Range("A8:G8").Value sCol = UBound(sArr, 2) ReDim Res(0 To (sCol + 1) * 2, 1 To 2) For k = 1 To sCol S = Split(sArr(1, k), ",") For i = 0 To UBound(S) Arr(CLng(S(i))) = Arr(CLng(S(i))) + 1 Next i Next k For i = 0 To 99 k = Arr(i) * 2 Res(k, 2) = Res(k, 2) + 1 If Res(k, 1) = Empty Then Res(k, 1) = "Muc: " & Arr(i) Res(k + 1, 1) = Format(i, "00") Else Res(k + 1, 1) = Res(k + 1, 1) & "," & Format(i, "00") End If Next i For k = 0 To sCol * 2 Step 2 If Res(k, 2) <> Empty Then Res(k, 1) = Res(k, 1) & " ( " & Res(k, 2) & " So)" End If Next k Sheets("CT7").Range("C9").Resize((sCol + 1) * 2) = Res End Sub
Chạy sub . . .Bác @HieuCD lập giúp em hàm để tách mức các cột số trong bảng này với.
Sub ABC()
Dim sArr(), Arr&(0 To 99), S, Res$(), sRow&, i&, r&
sArr = Sheets("Sheet1").Range("B2:B11").Value
sRow = UBound(sArr, 1)
ReDim Res(0 To sRow, 1 To 1)
For r = 1 To sRow
S = Split(sArr(r, 1), ",")
For i = 0 To UBound(S)
If S(i) <> Empty Then Arr(CLng(S(i))) = Arr(CLng(S(i))) + 1
Next i
Next r
For i = 0 To 99
If Res(Arr(i), 1) = Empty Then
Res(Arr(i), 1) = Format(i, "00")
Else
Res(Arr(i), 1) = Res(Arr(i), 1) & "," & Format(i, "00")
End If
Next i
Sheets("Sheet1").Range("G1").Resize(sRow + 1, 1) = Res
End Sub