huvo1122
Thành viên mới

- Tham gia
- 31/5/19
- Bài viết
- 34
- Được thích
- 3
:
Sub LapDSSoThapPhanKhongTrungTangDan()
Dim Rng As Range, sRng As Range: Const TF As String = ","
Dim Dm As Integer, W As Integer, J As Integer, Num As Double
Dim sNum As String, Tmp As String
Set Rng = [B2].CurrentRegion: W = 1
ReDim Arr(1 To 9+ Rng.Cells.Count, 1 To 1): Arr(W, 1) = "KQ"
For J = 0 To 99
If J Mod 10 > 0 Then
Num = J / 10: sNum = CStr(Num)
If Len(sNum) = 3 Then
Tmp = Replace(sNum, ".", TF)
Set sRng = Rng.Find(Tmp, , xlFormulas, xlWhole)
If Not sRng Is Nothing Then
W = W + 1: Arr(W, 1) = Tmp
End If
End If
End If
Next J
If W Then
[H1].Resize(7+ W).Value = Arr()
End If
End Sub
Đầu xuân năm mới kinh chúc a chị diễn đàn mạnh khỏe -hạnh phúc và thành côngE gặp vấn đề trong việc sắp xếp và lọc chuỗi số mò mãi không được e có ghi chi tiết tropng file đính kèm A/c giúp e với ạ
E cảm ơn nhiều
Do định dạng số thập phân mỗi máy khác nhau nên dùng cách sau:e thử 2 cách mà vẫn báo lỗi ạ. e dùng excel 2016 . nó cứ hiện lỗi NUM...
=INDIRECT(TEXT(MOD(AGGREGATE(15,6,COUNTIF(A$1:E$10,"<="&A$1:E$10)*10^6/FIND(",",A$1:E$10)^0+(ROW(A$1:E$10)*1000+COLUMN(A$1:E$10))/(COUNTIF(H$1:H1,A$1:E$10)=0),1),10^6),"R0C000"),0)
Chị ơi chị giúp e lần nữa với ạ. giờ em muốn tính trong bảng đó % xuất hiện của các số thập phân . ví dụ 0.1 xuất hiện 2 lần 2/6*100% = 33% bên cạnh ô KQ ạDo định dạng số thập phân mỗi máy khác nhau nên dùng cách sau:
Mã:=INDIRECT(TEXT(MOD(AGGREGATE(15,6,COUNTIF(A$1:E$10,"<="&A$1:E$10)*10^6/FIND(",",A$1:E$10)^0+(ROW(A$1:E$10)*1000+COLUMN(A$1:E$10))/(COUNTIF(H$1:H1,A$1:E$10)=0),1),10^6),"R0C000"),0)
Con số 6 đó bạn lấy đâu ra vậy?Chị ơi chị giúp e lần nữa với ạ. giờ em muốn tính trong bảng đó % xuất hiện của các số thập phân . ví dụ 0.1 xuất hiện 2 lần 2/6*100% = 33% bên cạnh ô KQ ạ
Option Explicit
Sub LapDSSoThapPhanKhongTrungTangDan_ThemTiLe()
Dim Rng As Range, sRng As Range: Const TF As String = ","
Dim W As Integer, J As Integer, Num As Double, Dm As Integer
Dim sNum As String, Tmp As String, MyAdd As String
Set Rng = [B2].CurrentRegion: W = 1
ReDim Arr(1 To 9 + Rng.Cells.Count, 1 To 2): Arr(W, 1) = "K Qua"
Arr(W, 2) = "Sô Lân " & "( /" & Str(Rng.Cells.Count) & " )"
For J = 0 To 99
If J Mod 10 > 0 Then
Num = J / 10: sNum = CStr(Num)
If Len(sNum) = 3 Then
Tmp = Replace(sNum, ".", TF)
Set sRng = Rng.Find(Tmp, , xlFormulas, xlWhole)
If Not sRng Is Nothing Then
W = W + 1: Arr(W, 1) = Tmp
MyAdd = sRng.Address
Do
Dm = Dm + 1
Set sRng = Rng.FindNext(sRng)
Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
Arr(W, 2) = Dm: Dm = 0
End If
End If
End If
Next J
If W Then
[H1].Resize(7 + W, 2).Value = Arr()
End If
End Sub
Ý của e là sau khi cho ra ô kết quả e muốn tính % xuất hiện của số đó nếu nó trùng nhau ở 2 cột khác nhau. Mỗi cột từ A-E là tệp dữ liệu riêng. e cảm ơn ạCon số 6 đó bạn lấy đâu ra vậy?
PHP:Option Explicit Sub LapDSSoThapPhanKhongTrungTangDan_ThemTiLe() Dim Rng As Range, sRng As Range: Const TF As String = "," Dim W As Integer, J As Integer, Num As Double, Dm As Integer Dim sNum As String, Tmp As String, MyAdd As String Set Rng = [B2].CurrentRegion: W = 1 ReDim Arr(1 To 9 + Rng.Cells.Count, 1 To 2): Arr(W, 1) = "K Qua" Arr(W, 2) = "Sô Lân " & "( /" & Str(Rng.Cells.Count) & " )" For J = 0 To 99 If J Mod 10 > 0 Then Num = J / 10: sNum = CStr(Num) If Len(sNum) = 3 Then Tmp = Replace(sNum, ".", TF) Set sRng = Rng.Find(Tmp, , xlFormulas, xlWhole) If Not sRng Is Nothing Then W = W + 1: Arr(W, 1) = Tmp MyAdd = sRng.Address Do Dm = Dm + 1 Set sRng = Rng.FindNext(sRng) Loop While Not sRng Is Nothing And sRng.Address <> MyAdd Arr(W, 2) = Dm: Dm = 0 End If End If End If Next J If W Then [H1].Resize(7 + W, 2).Value = Arr() End If End Sub
E lÝ của e là sau khi cho ra ô kết quả e muốn tính % xuất hiện của số đó nếu nó trùng nhau ở 2 cột khác nhau. Mỗi cột từ A-E là tệp dữ liệu riêng. e cảm ơn ạ
E thử vba mà không đc a ạCon số 6 đó bạn lấy đâu ra vậy?
PHP:Option Explicit Sub LapDSSoThapPhanKhongTrungTangDan_ThemTiLe() Dim Rng As Range, sRng As Range: Const TF As String = "," Dim W As Integer, J As Integer, Num As Double, Dm As Integer Dim sNum As String, Tmp As String, MyAdd As String Set Rng = [B2].CurrentRegion: W = 1 ReDim Arr(1 To 9 + Rng.Cells.Count, 1 To 2): Arr(W, 1) = "K Qua" Arr(W, 2) = "Sô Lân " & "( /" & Str(Rng.Cells.Count) & " )" For J = 0 To 99 If J Mod 10 > 0 Then Num = J / 10: sNum = CStr(Num) If Len(sNum) = 3 Then Tmp = Replace(sNum, ".", TF) Set sRng = Rng.Find(Tmp, , xlFormulas, xlWhole) If Not sRng Is Nothing Then W = W + 1: Arr(W, 1) = Tmp MyAdd = sRng.Address Do Dm = Dm + 1 Set sRng = Rng.FindNext(sRng) Loop While Not sRng Is Nothing And sRng.Address <> MyAdd Arr(W, 2) = Dm: Dm = 0 End If End If End If Next J If W Then [H1].Resize(7 + W, 2).Value = Arr() End If End Sub
Cho các ví dụ kết quả lý do sao ra được như vậy?Chị ơi chị giúp e lần nữa với ạ. giờ em muốn tính trong bảng đó % xuất hiện của các số thập phân . ví dụ 0.1 xuất hiện 2 lần 2/6*100% = 33% bên cạnh ô KQ ạ
e cảm ơn ạ
Ví dụ em có 5 bảng như vừa rồi nhưng số có thể trùng hoặc không. Sẽ cho ra thêm 5 cột KQ nữa E muốn tính % những số xuất hiện trùng nhau đó ạCho các ví dụ kết quả lý do sao ra được như vậy?
Vậy thì bạn Countif dữ liệu đã lọc ra từng bảng, cộng từ 1 đến 6 rồi chia 6 thôi.Ví dụ em có 5 bảng như vừa rồi nhưng số có thể trùng hoặc không. Sẽ cho ra thêm 5 cột KQ nữa E muốn tính % những số xuất hiện trùng nhau đó ạ
|
Vậy thôi, /6 hay /5 tùy bạn.
c giúp e với , e làm cứ bị lỗi thôi
e cảm ơn ạ
=COUNTIF(A$2:E$24,F2)/6
E cảm ơn ạVậy thôi, /6 hay /5 tùy bạn.
Mã:=COUNTIF(A$2:E$24,F2)/6
C ơi bảng của e tăng thêm 1 số trong chuôi C giúp e bỏ Ô có 2 số đi chỉ lấy 3 số và bỏ trùng với ạVậy thôi, /6 hay /5 tùy bạn.
Mã:=COUNTIF(A$2:E$24,F2)/6
Hỏi gì hỏi 1 lần nha bạn ơi:C ơi bảng của e tăng thêm 1 số trong chuôi C giúp e bỏ Ô có 2 số đi chỉ lấy 3 số và bỏ trùng với ạ
chị tải file đính kèm giups e vs a
e cảm ơn
=INDIRECT(TEXT(MOD(AGGREGATE(15,6,COUNTIF(A$1:F$10,"<="&A$1:F$10)*10^6/(LEN(A$1:F$10)=5)+(ROW(A$1:F$10)*1000+COLUMN(A$1:F$10))/(COUNTIF(H$1:H1,A$1:F$10)=0),1),10^6),"R0C000"),0)
vâng ạ . C ơi nó báo lỗi #DIV/0! chị giúp e với ,Hỏi gì hỏi 1 lần nha bạn ơi:
Mã:=INDIRECT(TEXT(MOD(AGGREGATE(15,6,COUNTIF(A$1:F$10,"<="&A$1:F$10)*10^6/(LEN(A$1:F$10)=5)+(ROW(A$1:F$10)*1000+COLUMN(A$1:F$10))/(COUNTIF(H$1:H1,A$1:F$10)=0),1),10^6),"R0C000"),0)
vâng ạ . C ơi nó báo lỗi #DIV/0! chị giúp e với ,E đangmới vào thực tập nhiều cái e ko biết mong a/c giúp đỡ e vớiạ