NHờ anh/chị diễn đàn lập trình giùm e công thức thống kê (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

kute2007

Thành viên chính thức
Tham gia
17/11/08
Bài viết
70
Được thích
0
Chào anh/chị diễn đàn,
EM có một bài toán nhỏ này mong a chị diễn đàn lập trình giùm e công thức tính nhé,

E có file dữ liệu gồm có
** SHeet1: hiện thị dữ liệu ,trogn đó có trường ngày tháng năm và trường dữ liệu là: data1,data2,data 3,data4
Như hình chụp:
sheet1.jpg
Giờ e có bài toán cần giải quyết như sau:

** Sheet 2: Sẽ hiện thị phần trăm từng data
-Lấy ngày 1/6/2014 là hệ quy chiếu, tính từ ngày 2/6/2014, ở trường Data 1,2,3,4, sẽ đếm, các con số có màu đỏ-Đậm và có dấu sao ( *)
Vị dụ ở data 1, từ ngày 1/6 tới 23/6 có 24 ngày( nếu tới ngày 30/6 thì sẽ là 30 ngày và con số 30 ngày này mình có thể thay đổi để sau này sẽ tiện tính toán khi số ngày tăng lên ), con số có màu đỏ đậm và có thêm dấu sao (*) có tât cả là: 07 lần ( Đếm ==> % con số màu đỏ/ tổng con số =7/24=29%
Tương tự cũng làm với data 2, 3,4 như vậy
Data 2 có 02 lần con số có màu đỏ--> % =2/24=8,3%
Data 3 có 05 lần con số có màu đỏ -->% =5/24=20,8%
Data 4 có 05 lần con số có màu đỏ -->% =5/24=20,8%
Ảnh minh họa
sheet2.jpgNhư vậy là ở sheet 2 là chỉ có vậy

** Sheet 3,Sẽ lọc và hiện thị data nếu ngày hiện tại không có con màu đỏ xuất hiện
Ví dụ ở sheet1 có 4 data, ta thấy tại ngày 23/06/2014, chỉ có data2, data3 là không có con số màu đỏ xuất hiện, vì vậy bên sheet3 sẽ hiện thị 2 trường dữ liệu này y nguyên như bên sheet1, ( e muốn a chị lập trình giúp e để xử lý tự động nhé, với dữ liệu nhiều làm thủ công không nổi đâu ạ)
Ảnh minh họa
Sheet3.jpg
Mong anhi chị diễn dàn giúp e một tay nhé, e mới làm nên khong có rành excel
E gửi kèm theo file,
((** THực tế: Dữ liệu của em rất lớn và sheet1-sheet2-sheet3 là tên khác so với ví dụ, và trường dữ liệu sẽ cso tầm 6,000 trường dữ liệu-anh chị code dễ hiểu để e dễ ốp vào bộ dữ liệu của e nhé). Cảm ơn a/c diễn đàn
 

File đính kèm

Lần chỉnh sửa cuối:
các anh chị , giúp e làm bài toàn này vs ạ, e đang cần gấp,.
 
Upvote 0
Mã:
Sub GPE_Sheet2()
Dim i As Long, j As Long, k As Long, m As Long, tmp, KQ(1 To 4)
With Sheet1
    For i = 1 To 4 'chay tu data 1 den data 4
        For j = 7 To 29
            tmp = .Cells(j, i + 4).Value
            If Len(tmp) > 0 Then 'neu no co gia tri
                k = k + 1
                If .Cells(j, i + 4).Font.Color = 255 Or InStr(1, tmp, "*") = True Then 'neu no la mau do hoac co dau *
                    m = m + 1
                End If
            End If
        Next j
        If k Then KQ(i) = m / k
        k = 0: m = 0
    Next i
End With
Sheet2.Range("D7").Resize(1, 4).Value = KQ
End Sub

update: trong file mình có viết 2 macro cho yêu cầu 2 sheet của bạn. Bạn test thử ok chưa nhé !
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
bạn hướng dẫn mình chạy được không? MÌnh làm chưa được, tks bạn nhé
 
Upvote 0
Mình làm được với sheet3 rồi, còn sheet2 nó k có chạy bạn à,
 
Upvote 0
Nhờ các anh chị giúp e với/ e đang làm bảng lô đề có các nào để tính bảng lô của mình một cách đơn giản không. e phải chép ra giấy rồi cộng, rồi xem con nào về con nào không về rất mất thời gian mà có khi còn nhầm.
 
Upvote 0
Nhờ các anh chị giúp e với/ e đang làm bảng lô đề có các nào để tính bảng lô của mình một cách đơn giản không. e phải chép ra giấy rồi cộng, rồi xem con nào về con nào không về rất mất thời gian mà có khi còn nhầm. tính kết quả xem ngày bao nhiêu điểm lô bao nhiêu nghìn đề về trúng thưởng bao nhiêu đó ạ.
 
Upvote 0
Mã:
Sub GPE_Sheet2()
Dim i As Long, j As Long, k As Long, m As Long, tmp, KQ(1 To 4)
With Sheet1
    For i = 1 To 4 'chay tu data 1 den data 4
        For j = 7 To 29
            tmp = .Cells(j, i + 4).Value
            If Len(tmp) > 0 Then 'neu no co gia tri
                k = k + 1
                If .Cells(j, i + 4).Font.Color = 255 Or InStr(1, tmp, "*") = True Then 'neu no la mau do hoac co dau *
                    m = m + 1
                End If
            End If
        Next j
        If k Then KQ(i) = m / k
        k = 0: m = 0
    Next i
End With
Sheet2.Range("D7").Resize(1, 4).Value = KQ
End Sub

update: trong file mình có viết 2 macro cho yêu cầu 2 sheet của bạn. Bạn test thử ok chưa nhé !
Bạn ơi, bạn xem lại giùm mình sheet2 được không. mình làm mà nó k chạy, còn sheet3 thì okie rồi
 
Lần chỉnh sửa cuối:
Upvote 0
mình thấy bình thường mà bạn, bạn thử xóa dữ liệu D7:G7 rồi chạy sub GPE_Sheet2 thử xem.
Bạn ơi, không ổn rồi, Mình chạy sheet3 mà nó ra cả 4 trường data luôn, dáng lẽ chỉ hiện thị trường dữ liệu mà ngày hiện tại k có con có màu đỏ, khi chạy mà nó hiện hết luôn,
Khi mình chạy thực tế thì dữ liệu nhiều nên k biết cần phải sửa câu lệnh thế nào? mOng bạn chỉ giúp
Ví dụ như:
-tên SHeet1,Sheet2.Sheet3 thực tế mình lấy tên khác và mình đã thay đổi nhưng khi chạy nó lại k chạy được
-File ví dụ trên mình chỉ láy 4 trường dữ liệu làm ví dụ, thực tế mình có tới 902 trường ,và mìh cũng thay đổi lệnh chạy của i=1 to 902 và chuyển đổi cho phù hợp vs dữ liệu của mình nhưng VBB báo là k có phát sinh,
VÍ dụ trường ngày thắng năm của mình bắt dầu từ C8, chứ ở ví dụ mình lấy là C7. Hi,
Mong bạn chỉ giúp mình,
cảm ơn bạn
 
Lần chỉnh sửa cuối:
Upvote 0
Chào anh/chị diễn đàn,
EM có một bài toán nhỏ này mong a chị diễn đàn lập trình giùm e công thức tính nhé,

E có file dữ liệu gồm có
** SHeet1: hiện thị dữ liệu ,trogn đó có trường ngày tháng năm và trường dữ liệu là: data1,data2,data 3,data4
Như hình chụp:
View attachment 124113
Giờ e có bài toán cần giải quyết như sau:

** Sheet 2: Sẽ hiện thị phần trăm từng data
-Lấy ngày 1/6/2014 là hệ quy chiếu, tính từ ngày 2/6/2014, ở trường Data 1,2,3,4, sẽ đếm, các con số có màu đỏ-Đậm và có dấu sao ( *)
Vị dụ ở data 1, từ ngày 1/6 tới 23/6 có 24 ngày( nếu tới ngày 30/6 thì sẽ là 30 ngày và con số 30 ngày này mình có thể thay đổi để sau này sẽ tiện tính toán khi số ngày tăng lên ), con số có màu đỏ đậm và có thêm dấu sao (*) có tât cả là: 07 lần ( Đếm ==> % con số màu đỏ/ tổng con số =7/24=29%
Tương tự cũng làm với data 2, 3,4 như vậy
Data 2 có 02 lần con số có màu đỏ--> % =2/24=8,3%
Data 3 có 05 lần con số có màu đỏ -->% =5/24=20,8%
Data 4 có 05 lần con số có màu đỏ -->% =5/24=20,8%
Ảnh minh họa
View attachment 124118Như vậy là ở sheet 2 là chỉ có vậy

** Sheet 3,Sẽ lọc và hiện thị data nếu ngày hiện tại không có con màu đỏ xuất hiện
Ví dụ ở sheet1 có 4 data, ta thấy tại ngày 23/06/2014, chỉ có data2, data3 là không có con số màu đỏ xuất hiện, vì vậy bên sheet3 sẽ hiện thị 2 trường dữ liệu này y nguyên như bên sheet1, ( e muốn a chị lập trình giúp e để xử lý tự động nhé, với dữ liệu nhiều làm thủ công không nổi đâu ạ)
Ảnh minh họa
View attachment 124119
Mong anhi chị diễn dàn giúp e một tay nhé, e mới làm nên khong có rành excel
E gửi kèm theo file,

Sheet2 thì đơn giản, muốn hỏi bạn : Trường hợp ngày hiện tại cả 4 đều màu đỏ thì kết quả yêu cầu thế nào?
 
Upvote 0
Không xảy ra trường hợp in màu đỏ bạn à, chỉ hiện thị và lọc ngày mà k có con số màu đỏ, ví dụ trên thì ngày 23, chỉ có dât2 và dât3 là được lọc ra và hiện thị sang sheet3. mà khi mình ốp vào dữ liệu của mìh thì sẽ k phải là sheet1, sheet2, sheet3 mà bằng tên khác, mình thay vào hàm mà nó k có chạy bạn à
 
Upvote 0
Sheet2 thì đơn giản, muốn hỏi bạn : Trường hợp ngày hiện tại cả 4 đều màu đỏ thì kết quả yêu cầu thế nào?
Nếu ngày hiện tại của cả 4 trường dữ liệu ( data1-dât2-dât3-data4) mà màu đỏ( Con số của ngày hiện tại màu đỏ) thì sẽ k lọc ra, và k hiện thị, vì bài toán của mình chỉ có yêu cầu là lọc và hiện thị con số của ngày hiện tại k có màu đỏ.. chỉ vậy thôi bạn à
 
Upvote 0
bạn đưa file thật của bạn lên rồi mình mới biết đường viết chứ !
 
Upvote 0
Nếu ngày hiện tại của cả 4 trường dữ liệu ( data1-dât2-dât3-data4) mà màu đỏ( Con số của ngày hiện tại màu đỏ) thì sẽ k lọc ra, và k hiện thị, vì bài toán của mình chỉ có yêu cầu là lọc và hiện thị con số của ngày hiện tại k có màu đỏ.. chỉ vậy thôi bạn à

Làm theo mẫu đầu bài, dữ liệu lớn hơn chạy nhanh chậm chưa biết. Sheet1 yêu cầu phải tồn tại ngày hiện hành. Vào Sheet3, nhấn Ctrl+q
Nên đưa mô phỏng dữ liệu gần đúng mô hình thật vì một số cells trống không biết để làm gì nên viết code bị rối.
 

File đính kèm

Upvote 0
Làm theo mẫu đầu bài, dữ liệu lớn hơn chạy nhanh chậm chưa biết. Sheet1 yêu cầu phải tồn tại ngày hiện hành. Vào Sheet3, nhấn Ctrl+q
Nên đưa mô phỏng dữ liệu gần đúng mô hình thật vì một số cells trống không biết để làm gì nên viết code bị rối.
Hi,Bạn vui tính quá, :)
 
Upvote 0

- Nếu sheet1 không tồn tại ngày hiện hành hoặc ngày hiện hành không có số liệu khác màu đỏ thì "HEN NGAY MAI NHE" bạn
- Sub này chạy trực tiếp trên sheet nên với dữ liệu lớn chắc chắn là chậm, hy vọng vẫn là nhanh với bài toán của bạn
 
Upvote 0
- Nếu sheet1 không tồn tại ngày hiện hành hoặc ngày hiện hành không có số liệu khác màu đỏ thì "HEN NGAY MAI NHE" bạn
- Sub này chạy trực tiếp trên sheet nên với dữ liệu lớn chắc chắn là chậm, hy vọng vẫn là nhanh với bài toán của bạn
Bạn hiểu saoys mìnnh rồi bạn. ví dụ trong file l;à ngày 23, thì file sheet3 cũng sẽ hiện thị tới ngày 23/6. còn sheet2cuxng vậy
 
Upvote 0
- Nếu sheet1 không tồn tại ngày hiện hành hoặc ngày hiện hành không có số liệu khác màu đỏ thì "HEN NGAY MAI NHE" bạn
- Sub này chạy trực tiếp trên sheet nên với dữ liệu lớn chắc chắn là chậm, hy vọng vẫn là nhanh với bài toán của bạn[/QU
Mà bạn viết thế mình cũng k hiểu đc bạn à,. k biết bạn có hiểu đc yêucâiu bài toán của mình k nữa?
 
Upvote 0
** Sheet 3,Sẽ lọc và hiện thị data nếu " .........ngày hiện tại........ " không có con màu đỏ xuất hiện
Ví dụ ở sheet1 có 4 data, " ...........ta thấy tại ngày 23/06/2014......... ", chỉ có data2, data3 là không có con số màu đỏ xuất hiện, vì vậy bên sheet3 sẽ hiện thị 2 trường dữ liệu này y nguyên như bên sheet1, ( e muốn a chị lập trình giúp e để xử lý tự động nhé, với dữ liệu nhiều làm thủ công không nổi đâu ạ)
Mong anhi chị diễn dàn giúp e một tay nhé, e mới làm nên khong có rành excel
E gửi kèm theo file,
((** THực tế: Dữ liệu của em rất lớn và sheet1-sheet2-sheet3 là tên khác so với ví dụ, và trường dữ liệu sẽ cso tầm 6,000 trường dữ liệu-anh chị code dễ hiểu để e dễ ốp vào bộ dữ liệu của e nhé). Cảm ơn a/c diễn đàn[/QUOTE]
--------------------
Cái ngày bạn nói là cái ngày nào vậy. Cái tôi lập là cái ngày hiện tại bây giờ và hôm nay là 29/6/2014
Có lẽ bạn nên định nghĩa ngày tính toán cuối cùng là ngày nào thì hay hơn
 
Lần chỉnh sửa cuối:
Upvote 0
** Sheet 3,Sẽ lọc và hiện thị data nếu " .........ngày hiện tại........ " không có con màu đỏ xuất hiện
Ví dụ ở sheet1 có 4 data, " ...........ta thấy tại ngày 23/06/2014......... ", chỉ có data2, data3 là không có con số màu đỏ xuất hiện, vì vậy bên sheet3 sẽ hiện thị 2 trường dữ liệu này y nguyên như bên sheet1, ( e muốn a chị lập trình giúp e để xử lý tự động nhé, với dữ liệu nhiều làm thủ công không nổi đâu ạ)
Mong anhi chị diễn dàn giúp e một tay nhé, e mới làm nên khong có rành excel
E gửi kèm theo file,
((** THực tế: Dữ liệu của em rất lớn và sheet1-sheet2-sheet3 là tên khác so với ví dụ, và trường dữ liệu sẽ cso tầm 6,000 trường dữ liệu-anh chị code dễ hiểu để e dễ ốp vào bộ dữ liệu của e nhé). Cảm ơn a/c diễn đàn

Cái ngày bạn nói là cái ngày nào vậy. Cái tôi lập là cái ngày hiện tại bây giờ và hôm nay là 29/6/2014[/QUOTE]
a oi, e làm như a nói mà nó k chạy,e chụp hìnhleen cho a coi nhen
29.jpg
29.1.jpg
29.3.jpg
 
Upvote 0
Cái ngày bạn nói là cái ngày nào vậy. Cái tôi lập là cái ngày hiện tại bây giờ và hôm nay là 29/6/2014
a oi, e làm như a nói mà nó k chạy,e chụp hìnhleen cho a coi nhen
View attachment 124337
View attachment 124338
View attachment 124339[/QUOTE]

Yé muốn nói là tíh từ ngày 1/6 tới hiện tại,.trong file là 23/6 nhưng hômnay là 29/6, thì nó sẽ lọc ra tại ngày 29/6 nhưng con mà k có màu đỏ xuất hiện tại ngày 29/6 ở trường data1-data2-data3-data4. Ý của e làm vật cơ ạ
 
Upvote 0
Cái ngày bạn nói là cái ngày nào vậy. Cái tôi lập là cái ngày hiện tại bây giờ và hôm nay là 29/6/2014
a oi, e làm như a nói mà nó k chạy,e chụp hìnhleen cho a coi nhen
View attachment 124337
View attachment 124338
View attachment 124339[/QUOTE]

Bạn chỉ cần THỬ thay thế một ngày nào đó bằng ngày HÔM NAY là 29/6/2014 rồi chạy là đảm bảo đạt yêu cầu
----------------
Xem lại hình mới thấy, Sub tôi viết theo mẫu của bạn chỉ đến dòng 34 mà thôi, Ngày 29/6/2014 của bạn lại vào dòng 35 thì làm sao mà có kết quả. Tôi đã nói từ bài trước là làm theo mẫu đã cho ( Chỉ đến dòng 34 là hết )
Nếu muốn, Bạn gõ 29/6/2014 vào C34 và nhập số vào Data1 _ Data4 xem thử
 
Lần chỉnh sửa cuối:
Upvote 0
a oi, e làm như a nói mà nó k chạy,e chụp hìnhleen cho a coi nhen
View attachment 124337
View attachment 124338
View attachment 124339

Bạn chỉ cần THỬ thay thế một ngày nào đó bằng ngày HÔM NAY là 29/6/2014 rồi chạy là đảm bảo đạt yêu cầu
----------------
Xem lại hình mới thấy, Sub tôi viết theo mẫu của bạn chỉ đến dòng 34 mà thôi, Ngày 29/6/2014 của bạn lại vào dòng 35 thì làm sao mà có kết quả. Tôi đã nói từ bài trước là làm theo mẫu đã cho ( Chỉ đến dòng 34 là hết )[/QUOTE]
HI, thực tế a có thể để tới tâm2000- 3,000 được k ạ. a gửi lại giùm e file nhé,
 
Upvote 0
Bạn chỉ cần THỬ thay thế một ngày nào đó bằng ngày HÔM NAY là 29/6/2014 rồi chạy là đảm bảo đạt yêu cầu
----------------
Xem lại hình mới thấy, Sub tôi viết theo mẫu của bạn chỉ đến dòng 34 mà thôi, Ngày 29/6/2014 của bạn lại vào dòng 35 thì làm sao mà có kết quả. Tôi đã nói từ bài trước là làm theo mẫu đã cho ( Chỉ đến dòng 34 là hết )
HI, thực tế a có thể để tới tâm2000- 3,000 được k ạ. a gửi lại giùm e file nhé,[/QUOTE]

Cái cần thiết là thống nhất ngày tính toán là thế nào, theo tôi hiểu là ngày cuối cùng có số liệu?
 
Upvote 0
HI, thực tế a có thể để tới tâm2000- 3,000 được k ạ. a gửi lại giùm e file nhé,

Cái cần thiết là thống nhất ngày tính toán là thế nào, theo tôi hiểu là ngày cuối cùng có số liệu?[/QUOTE]
CHính xác đó anh, ví dụ ngày mai là 30/6 thì lại phải chạy lại 1 lần nữa để xác định,., chứ k phải là cố định 1 ngày anh à. tóm lại là ngày hiện tại để chạy dữ liệu ý
 
Upvote 0
a oi, còn sheet2, cũng k có chạy đc anh à, a xemlaij giùm e luôn nhen,
 
Upvote 0
Cái cần thiết là thống nhất ngày tính toán là thế nào, theo tôi hiểu là ngày cuối cùng có số liệu?
CHính xác đó anh, ví dụ ngày mai là 30/6 thì lại phải chạy lại 1 lần nữa để xác định,., chứ k phải là cố định 1 ngày anh à. tóm lại là ngày hiện tại để chạy dữ liệu ý[/QUOTE]

Vậy là ngày tính do bạn lựa chọn!
OK Mai sẽ trao đổi tiếp
 
Upvote 0
CHính xác đó anh, ví dụ ngày mai là 30/6 thì lại phải chạy lại 1 lần nữa để xác định,., chứ k phải là cố định 1 ngày anh à. tóm lại là ngày hiện tại để chạy dữ liệu ý

Vậy là ngày tính do bạn lựa chọn!
OK Mai sẽ trao đổi tiếp[/QUOTE]
Ui,giờ trao đổi luôn k đc hả ạnh, e đang cần gấp a giúp e luôn đi ạ
 
Upvote 0
Nhập ngày cuối đợt thống kê vào A1 sheet3. Nhấn Ctrl+q.
 

File đính kèm

Upvote 0
Có lẽ bạn xử lý file cần tính cho đảm bảo rồi gửi lên thì tốt hơn. Nếu cần có thể gửi qua tin nhắn của diễn đàn
 
Upvote 0
Bác gtri ơi, bác giúp e xogn chưa ạ ? e cần gấp quá rồi ạ
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom