Giúp Code Lọc Dữ Liệu theo tháng, năm

Liên hệ QC

nmhung49

Thành viên tích cực
Tham gia
20/8/09
Bài viết
1,186
Được thích
1,337
Em có file này mà em chưa biết viết code thế nào +-+-+-+ là khi mình lọc dựa vào năm tháng ở checkbox thang, nam. Nếu mình click chọn checkbox Thang, Nam thị 2 combobox của tháng năm có hiệu lực để mình lọc dữ liệu theo từ tháng và theo năm. Nếu mình chỉ click chọn năm không thị mặc định chọn tháng là tất cả để mình lọc dữ liệu theo năm.Nếu ứng với năm đó tháng đó thì sẽ lấy dữ liệu bên sheet data ứng với cột A, B, C, D đem qua. Vì các cột còn lại có dữ liệu nữa mình không muốn đem qua. Mong các bạn và anh Chị trên diễn đàn giúp đỡ. Thanks
 
Lần chỉnh sửa cuối:
Bạn thử nghiệm với macro này

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$C$1" Then
   Dim Sh As Worksheet, Rng As Range ', sRng As Range'
   Dim dFormat As String ', MyAdd As String'
   Dim jJ As Byte, MyColor As Byte, Dat As Date
   
   Set Sh = Sheets("Data")
   MyColor = [A8].Interior.ColorIndex + 1
   Dat = DateSerial([c2].Value, [C1].Value, 1)
   Set Rng = Sh.Range(Sh.[D2], Sh.[d65500].End(xlUp))
   dFormat = Rng.NumberFormat
   Range("A9:D" & Rng.Rows.Count + 9).ClearContents
   Rng.NumberFormat = "MM/dd/yyyy"
   Do
      Set sRng = Rng.Find(Dat + jJ, , xlFormulas, xlWhole)
      If Not sRng Is Nothing Then
         With [A65500].End(xlUp).Offset(1)
            .Resize(, 4).Value = sRng.Offset(, -3).Resize(, 4).Value
         End With
      End If
      jJ = jJ + 1
      If Month(Dat + jJ) <> [C1].Value Then Exit Do
   Loop
   Rng.NumberFormat = dFormat
   [A8].Resize(, 4).Interior.ColorIndex = IIf(MyColor > 42, 34, MyColor)
  End If
End Sub
 
Upvote 0
Ủa, bị xóa 1 bài rồi ư?!

Bạn dùng các macro sau:

Mã:
Option Explicit
[B]Private Sub CheckBox1_Click()[/B]
 If CheckBox1 Then
   C1Select
   If CheckBox2 Then CheckBox2 = False
 End If
[B]End Sub[/B]

Mã:
[B]Private Sub CheckBox2_Click()[/B]
 If CheckBox2 Then
   Dim Sh As Worksheet, Rng As Range
   Dim eRw As Long
    
   Set Sh = Sheets("Data"):    Sh.[e1].Value = "Nam"
   eRw = Sh.[A1].CurrentRegion.Rows.Count
   Set Rng = Sh.Range("A1:E" & eRw)
   Range("A15:D" & eRw).ClearContents
   Sh.[e1].Resize(eRw).Offset(1).FormulaR1C1 = "=YEAR(RC[-1])"
   Rng.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sh.[G1].Resize(2), _
      CopyToRange:=Sh.[i1].Resize(, 4), Unique:=False
   Sh.[i1].CurrentRegion.Offset(1).Copy Destination:=[a15]
   Sh.[e1].Resize(eRw).ClearContents
   If CheckBox1 Then CheckBox1.Value = False
 End If
[B]End Sub[/B]
PHP:
Private Sub C1Select()
   Dim Sh As Worksheet, Rng As Range
   Dim dFormat As String
   Dim jJ As Byte, MyColor As Byte, Dat As Date
   
   Set Sh = Sheets("Data")
   MyColor = [A14].Interior.ColorIndex + 1
   Dat = DateSerial([c2].Value, [C1].Value, 1)
   Set Rng = Sh.Range(Sh.[D2], Sh.[d65500].End(xlUp))
   dFormat = Rng.NumberFormat
   Range("A15:D" & Rng.Rows.Count + 15).ClearContents
   Rng.NumberFormat = "MM/dd/yyyy"
   Do
      Set sRng = Rng.Find(Dat + jJ, , xlFormulas, xlWhole)
      If Not sRng Is Nothing Then
         With [A65500].End(xlUp).Offset(1)
            .Resize(, 4).Value = sRng.Offset(, -3).Resize(, 4).Value
         End With
      End If
      jJ = jJ + 1
      If Month(Dat + jJ) <> [C1].Value Then Exit Do
   Loop
   Rng.NumberFormat = dFormat
   [A8].Resize(, 4).Interior.ColorIndex = IIf(MyColor > 42, 34, MyColor)

End Sub
 

File đính kèm

  • GPE.rar
    20.3 KB · Đọc: 115
Upvote 0
bị lỗi gì rồi anh ơi

Mã:
[COLOR=#000000][COLOR=#0000bb][/COLOR][FONT=Courier New][COLOR=red][COLOR=#007700]Private [/COLOR][COLOR=#0000bb]Sub C1Select[/COLOR][/COLOR][/FONT][FONT=Courier New][COLOR=#007700][COLOR=red]()[/COLOR]
   [/COLOR][COLOR=#0000bb]Dim Sh [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000bb]Worksheet[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]Rng [/COLOR][COLOR=#007700]As [/COLOR][/FONT][FONT=Courier New][COLOR=#0000bb]Range
   Dim dFormat [/COLOR][COLOR=#007700]As [/COLOR][/FONT][FONT=Courier New][COLOR=#0000bb]String
   Dim jJ [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000bb]Byte[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]MyColor [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000bb]Byte[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]Dat [/COLOR][COLOR=#007700]As [/COLOR][/FONT][FONT=Courier New][COLOR=#0000bb]Date
   
   Set Sh [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]Sheets[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]"Data"[/COLOR][/FONT][FONT=Courier New][COLOR=#007700])
   [/COLOR][COLOR=#0000bb]MyColor [/COLOR][COLOR=#007700]= [[/COLOR][COLOR=#0000bb]A14[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000bb]Interior[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]ColorIndex [/COLOR][COLOR=#007700]+ [/COLOR][/FONT][FONT=Courier New][COLOR=#0000bb]1
   Dat [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]DateSerial[/COLOR][COLOR=#007700]([[/COLOR][COLOR=#0000bb]c2[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000bb]Value[/COLOR][COLOR=#007700], [[/COLOR][COLOR=#0000bb]C1[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000bb]Value[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]1[/COLOR][/FONT][FONT=Courier New][COLOR=#007700])
   [/COLOR][COLOR=#0000bb]Set Rng [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]Sh[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]Range[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]Sh[/COLOR][COLOR=#007700].[[/COLOR][COLOR=#0000bb]D2[/COLOR][COLOR=#007700]], [/COLOR][COLOR=#0000bb]Sh[/COLOR][COLOR=#007700].[[/COLOR][COLOR=#0000bb]d65500[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000bb]End[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]xlUp[/COLOR][/FONT][FONT=Courier New][COLOR=#007700]))
   [/COLOR][COLOR=#0000bb]dFormat [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]Rng[/COLOR][COLOR=#007700].[/COLOR][/FONT][FONT=Courier New][COLOR=#0000bb]NumberFormat
   Range[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]"A15:D" [/COLOR][COLOR=#007700]& [/COLOR][COLOR=#0000bb]Rng[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]Rows[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]Count [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000bb]15[/COLOR][COLOR=#007700]).[/COLOR][/FONT][FONT=Courier New][COLOR=#0000bb]ClearContents
   Rng[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]NumberFormat [/COLOR][COLOR=#007700]= [/COLOR][/FONT][COLOR=#dd0000][FONT=Courier New]"MM/dd/yyyy"
   [/FONT][/COLOR][FONT=Courier New][COLOR=#007700]Do
      [/COLOR][COLOR=#0000bb][COLOR=red]Set sRng[/COLOR] [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]Rng[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]Find[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]Dat [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000bb]jJ[/COLOR][COLOR=#007700], , [/COLOR][COLOR=#0000bb]xlFormulas[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]xlWhole[/COLOR][/FONT][COLOR=#007700][FONT=Courier New])
      If [/FONT][/COLOR][FONT=Courier New][COLOR=#0000bb]Not sRng Is Nothing Then
         With [/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000bb]A65500[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000bb]End[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]xlUp[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000bb]Offset[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]1[/COLOR][/FONT][FONT=Courier New][COLOR=#007700])
            .[/COLOR][COLOR=#0000bb]Resize[/COLOR][COLOR=#007700](, [/COLOR][COLOR=#0000bb]4[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000bb]Value [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]sRng[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]Offset[/COLOR][COLOR=#007700](, -[/COLOR][COLOR=#0000bb]3[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000bb]Resize[/COLOR][COLOR=#007700](, [/COLOR][COLOR=#0000bb]4[/COLOR][COLOR=#007700]).[/COLOR][/FONT][COLOR=#0000bb][FONT=Courier New]Value
         End With
      End [/FONT][/COLOR][FONT=Courier New][COLOR=#007700]If
      [/COLOR][COLOR=#0000bb]jJ [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]jJ [/COLOR][COLOR=#007700]+ [/COLOR][/FONT][FONT=Courier New][COLOR=#0000bb]1
      [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000bb]Month[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]Dat [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000bb]jJ[/COLOR][COLOR=#007700]) <> [[/COLOR][COLOR=#0000bb]C1[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000bb]Value Then [/COLOR][/FONT][COLOR=#007700][FONT=Courier New]Exit Do
   [/FONT][/COLOR][FONT=Courier New][COLOR=#0000bb]Loop
   Rng[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]NumberFormat [/COLOR][COLOR=#007700]= [/COLOR][/FONT][FONT=Courier New][COLOR=#0000bb]dFormat
   [/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000bb]A8[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000bb]Resize[/COLOR][COLOR=#007700](, [/COLOR][COLOR=#0000bb]4[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000bb]Interior[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]ColorIndex [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]IIf[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]MyColor [/COLOR][COLOR=#007700]> [/COLOR][COLOR=#0000bb]42[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]34[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000bb]MyColor[/COLOR][/FONT][COLOR=#007700][FONT=Courier New])

[/FONT][/COLOR][COLOR=#0000bb][FONT=Courier New]End Sub  [/FONT]
[/COLOR][/COLOR]
To HYen hình như đoạn code trên bị lỗi ở Private Sub C1Select(), Set sRng nên khi em chọn tháng báo lỗi không được. Mong anh test lại dùm.Nếu có thể anh giải thích dùm em ý nghĩa của các câu lệnh để em có thể hiểu và học. Cảm ơn anh nhiều
 
Upvote 0
Lỗi gì là gì vậy; Mình thử trước khi đưa file lên rồi mà.
Chỉ chịu trách nhiệm với file mình đính kèm thôi đó nha!

Dịch từ macro sang tiếng Việt (có dấu), như sau:

Ba dòng đầu: Khai báo các biến cần dùng;

Gán trang tính 'DâT' vô biến đối tượng đã khai báo;

Lấy màu nền +1 tại 'A14' gán vô biến MyColor
(Để sau mỗi lần chạy macro ta thấy ô dòng này đổi màu)

Lấy ngày 1 của tháng ghi tại 'C1' & năm tại 'C2' gán vô biến Dat đã khai báo

Lấy vùng từ D2 cho đến dòng cuối chứa dữ liệu của cột này thuộc trang tính trong biến Sh đem gán vô biến Rng đã khai báo;

Đem kiểu định dạng hiện hữu của vùng chứa trong Rng gán vô biến chuỗi dFormat;

Xóa vùng thuộc dữ kiệu báo cáo cũ; Hầu chuẩn bị bãi đáp cho dữ liệu mới mà macro đưa lại;

Định dạng lại vùng chứa trong biến Rng; Nhằm fục vụ cho công cuộc tìm kiếm bên dưới

Thiết lập 1 vòng lặp; Để soát xét toàn bộ các ngày trong tháng có trong biến Dat
( Bắt đầu từ ngày đầu tháng,) tìm ngày này có trong vùng Rng hay không?

Nếu tìm thấy thì:
Từ ô tìm thấy làm mốc, lui về trái 3 cột, từ đó lấy trị của 4 ô liên tiếp gán vô ô trên trang hiện hành, nơi mà từ ô cuối cùng của cột 1, áp dụng fương thức End(xlUp) (ô cuối trong cột 'A' có dữ liệu) thành ô bắt đầu của 4 ô liên tiếp trong dòng
(dài dòng là vậy nhưng lại khó hiểu, nôm na là vầy: Nếu cột 'A' đang có A35 là ô cuối có dữ liệu thì bắt đầu chép từ 'A36:D36')

jJ = 1+ jJ : Sau mỗi lần tìm kiếm sẽ tăng lên 1 ngày trong biến Dat

& thực hiện công việc chán chường này cho đến khi trị tháng trong biến Dat không còn như cũ. (Điều kiện thoát vòng lặp)
Nói thêm:
+ Thay vì vòng lặp này, ta có thể xài For . . . Next (Bạn hãy thử xem sao)

RngNumberFormat = dFormat hầu trả lại trạng thái định dạng ban đầu của chủ sở hữu trang tính;

Dòng cuối: Thực hiện việc tô màu theo biến MyColor
 
Upvote 0
báo vậy nè anh

Em lấy từ file của anh chạy thử thì nó hiện thông báo lỗi lên gửi đính kèm hình anh xem thử nhen
 
Lần chỉnh sửa cuối:
Upvote 0
Em lấy từ file của anh chạy thử thì nó hiện thông báo lỗi lên gửi đính kèm hình anh xem thử nhen
Dịch câu tiếng Anh thông báo lổi bạn hiểu là gì? Có phải là BIẾN CHƯA KHAI BÁO không?
Vậy xem thằng nào chưa khai báo thì.. Dim nó 1 phát
Còn không thì gữi file lên đây chứ gữi cái hình thì làm sao sửa cho bạn đây?
 
Upvote 0
Không cần dùng các ChechBoxs luôn

Mã:
Option Explicit
[B]Private Sub Worksheet_Change(ByVal Target As Range)[/B]
 If Not Intersect(Target, [C1]) Is Nothing Then
   If Target.Value = "*" Then
       MonthsOffYear
   Else
      MonthOnly
   End If
 End If
[B]End Sub[/B]

PHP:
Private Sub MonthsOffYear()
   Dim Sh As Worksheet, Rng As Range
   Dim eRw As Long
    
   Set Sh = Sheets("Data"):    Sh.[e1].Value = "Nam"
   eRw = Sh.[A1].CurrentRegion.Rows.Count
   Set Rng = Sh.Range("A1:E" & eRw)
   Range("A15:D" & eRw).ClearContents
   Sh.[e1].Resize(eRw).Offset(1).FormulaR1C1 = "=YEAR(RC[-1])"
   Rng.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sh.[G1].Resize(2), _
      CopyToRange:=Sh.[i1].Resize(, 4), Unique:=False
   Sh.[i1].CurrentRegion.Offset(1).Copy Destination:=[a15]
   Sh.[e1].Resize(eRw).ClearContents
End Sub

PHP:
Private Sub MonthOnly()
   Dim Sh As Worksheet, Rng As Range, sRng As Range
   Dim dFormat As String
   Dim jJ As Byte, MyColor As Byte, Dat As Date
   
   Set Sh = Sheets("Data")
   MyColor = [A14].Interior.ColorIndex + 1
   Dat = DateSerial([c2].Value, [C1].Value, 1)
   Set Rng = Sh.Range(Sh.[D2], Sh.[d65500].End(xlUp))
   dFormat = Rng.NumberFormat
   Range("A15:D" & Rng.Rows.Count + 15).ClearContents
   Rng.NumberFormat = "MM/dd/yyyy"
   Do
      Set sRng = Rng.Find(Dat + jJ, , xlFormulas, xlWhole)
      If Not sRng Is Nothing Then
         With [A65500].End(xlUp).Offset(1)
            .Resize(, 4).Value = sRng.Offset(, -3).Resize(, 4).Value
         End With
      End If
      jJ = jJ + 1
      If Month(Dat + jJ) <> [C1].Value Then Exit Do
   Loop
   Rng.NumberFormat = dFormat
   [A8].Resize(, 4).Interior.ColorIndex = IIf(MyColor > 42, 34, MyColor)

End Sub

Nút điều khiển là ô C1 của trang Report; Trong đó có "*" để xem báo cáo doanh thu cả 1 năm có ở C2
 

File đính kèm

  • GPE.rar
    22.4 KB · Đọc: 87
Upvote 0
hàm đổi số thành chữ

Cho em hỏi em dùng công thức đổi số thành chữ của Thầy Phạm Duy Long thì bị báo lỗi trong file của em làm. Nhưng nếu em tạo workbook mới thì ok không báo lỗi gì em gửi hình báo lỗi lên mong AC và các bạn xem giúp tại file của e nặng lắm không upload lên được.Thanks
 
Upvote 0
Thật ra bài trên của mình là bước đệm thôi,

Bước cuối là nhốt chung 3 macro trên làm 1 luôn! Như dưới đây

PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, [c1]) Is Nothing Then
   Dim Sh As Worksheet, Rng As Range
   Dim eRw As Long
    
   Set Sh = Sheets("Data"):    Sh.[e1].Value = "Nam"
   eRw = Sh.[A1].CurrentRegion.Rows.Count
   Set Rng = Sh.Range("A1:E" & eRw)
   Range("A15:D" & eRw).ClearContents
   
   If [c1].Value = "*" Then
      Sh.[e1].Resize(eRw).Offset(1).FormulaR1C1 = "=YEAR(RC[-1])"
   Else
      Sh.[e1].Resize(eRw).Offset(1).FormulaR1C1 = "=MONTH(RC[-1]) & ""/"" & YEAR(RC[-1])"
   End If
   Rng.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sh.[G1].Resize(2), _
      CopyToRange:=Sh.[i1].Resize(, 4), Unique:=False
   Sh.[i1].CurrentRegion.Offset(1).Copy Destination:=[a15]
   Sh.[e1].Resize(eRw).ClearContents
 End If
End Sub
 

File đính kèm

  • GPE.rar
    22.1 KB · Đọc: 98
Upvote 0
Các bác cho em hỏi thêm, trường hợp dữ liệu ngày tháng năm do người khác gửi cho minh lại để để ở định dạng "general" thì làm sao để chuyển về định dạng "date" được. Khi em làm thủ công tức là bôi đen rồi chuyển thì một số dòng nó lại chuyển về giá trị "value" (theo kiểu 4569). Các bác giúp em với. Cảm ơn các bác nhiều.
 
Upvote 0
Cho mình hỏi, vẫn file trên nhưng mình muốn lọc dữ liệu giữa 2 khoảng thời gian (có thể không cùng năm, hoặc tháng) thì làm thế nào?
Mình thấy hàm trên thao tác trực tiếp trên cell. Mình chuyển toàn bộ vùng dữ liệu vào mảng. Sử dụng Dictionary, với key là ngày, Item tương ứng là số dòng tương ứng với key trên mảng. Vậy nếu khi có hai khoảng thời gian, có thể thông qua key suy ra khoảng giới hạn của vùng cần lọc. Sau đó dùng For... to.. để ghi dữ liệu ra. Làm thế này liệu có nhanh hơn cách trên cell không? đặc biệt khi dữ liệu lớn.
 
Upvote 0
lọc dữ liệu từ sheet khác sao bạn không thử làm theo cách đơn giản nhất là dùng autofillter trong code. lọc cái ra luôn, không cần phải for phiếu gì cả. nếu dữ liệu lớn thì vòng for next chạy chết luôn.
 
Upvote 0
Có thể ko cần dùng macro. Dùng Slicer đối với 1 Table (Excel 2010, 2013)
Chèn 1 Table cho bảng tính. Chọn bảng tính vừa chèn chọn Insert - Filters - Slicer.
 
Lần chỉnh sửa cuối:
Upvote 0
Có thể ko cần dùng macro. Dùng Slicer đối với 1 Table (Excel 2010, 2013)
Chèn 1 Table cho bảng tính. Chọn bảng tính vừa chèn chọn Insert - Filters - Slicer.
Image:

File kèm theo:

Dùng Slicer với Table chỉ có tác dụng trên Excel 2013 thôi bạn à!
Với Excel 2010, Slicer chỉ có tác dụng với 1 PivotTable
Trên Excel 2010, mở file của bạn sẽ nhìn thấy thế này:

Capture.JPG
 
Lần chỉnh sửa cuối:
Upvote 0
oh, hóa ra là thế.
E chỉ nhìn thoáng cái version 2007 thấy có, mà chưa test.
E sorry, hehe.
 
Upvote 0
Nhưng giả sử tôi chọn cách tổng hợp dữ liệu từ 23/11/2012 đến 7/3/2013 thì tick chọn từng cái một cũng phiền lắm chứ. Nên mới muốn tạo Macro. Tôi dùng Pivot Table nhưng chọn cũng lâu
 
Upvote 0
Nhưng giả sử tôi chọn cách tổng hợp dữ liệu từ 23/11/2012 đến 7/3/2013 thì tick chọn từng cái một cũng phiền lắm chứ. Nên mới muốn tạo Macro. Tôi dùng Pivot Table nhưng chọn cũng lâu

PivotTable là "trùm thiên hạ" rồi mà bạn còn chê nữa thì không biết nói sao
 
Upvote 0
Ơ, nhưng có thể làm được một cái macro để nó chọn những item trong pivot table chứ?
Mình sử dụng Pivot Table (PB), chọn trường Thời gian làm Filter, nhưng tick chọn nhiều ngày thì lâu. Vậy có thể làm một macro để nó tự chọn phần ngày trong khoảng thời gian kia không? Khoảng thời gian đó đã cho trước trên 2 cell.
 
Upvote 0
Web KT
Back
Top Bottom