Trợ giúp về lọc dữ liệu ngày sinh (1 người xem)

  • Thread starter Thread starter dqt_nt
  • Ngày gửi Ngày gửi
Liên hệ QC

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

dqt_nt

Thành viên hoạt động
Tham gia
7/6/08
Bài viết
100
Được thích
29
Mình có 1 sheet tổng quát chứa các thông tin về nhân sự. Mình muốn tạo thêm 1 sheet để lọc những người có ngày sinh nhật trong 1 tháng nào đó. Tạo 1 sheet để lọc những người ở 1 địa phương nào đó.
Ví dụ:
Ông Nguyễn Văn A ở Phường Cam Phúc Nam, Cam Ranh, Khánh Hòa

Khi mình gõ là Cam Phúc Nam thì hiện ông Nguyễn Văn A
Gõ Cam Ranh, hay gõ Khánh Hòa cũng hiện ông A

Yêu cầu của mình là như vậy, mong mọi người giúp! Nếu có thể hướng dẫn cụ thể luôn để mình có thể tự làm khi lọc nhân sự theo phòng, ban và các tiêu chí khác
Cảm ơn mọi người
 

File đính kèm

Một cách dùng Công thức! Bạn tham khảo! Có thể chuyển thành VBA để chạy nhanh hơn!
 

File đính kèm

Dùng VBA thì mình có cách này. Bạn mở file ra xem nha! Thân.
 

File đính kèm

Lần chỉnh sửa cuối:
Làm những bài toán có liên quan đến ngày tháng thì trước khi làm phải kiểm tra kỹ phần nhập liệu ngày tháng... xem liệu chúng có thật sự là ngày tháng hay không!
File của tác giã có 1 vài chổ là dạng TEXT... khi đưa vào máy tính có định dạng trong Regional Language Settings là m/d/yyyy thì sẽ cho lổi #VALUE!
Xem lại nhé (dùng hàm ISNUMBER hoặc ISTEXT để kiểm tra)
Còn bài của Po_Pikachu: Tôi không hiểu tại sao lại phải dùng For, trong khi ta hoàn toàn có thể dùng AutoFilter (làm bằng tay tôi còn làm được nữa là...)
---------
Nói thêm với tác giã: Nếu tôi là giám đốc, chắc chắn tôi không bao giờ chấp nhận 1 bảng tính trình bày lượm thượm như kiểu của bạn... Xấu quá ---> Trong khi dử liệu này rất bình thường, đâu đến nổi không thể trình bày gọn gàng
???
 
Lần chỉnh sửa cuối:
Vui lòng xem file đính kèm
 

File đính kèm

Lần chỉnh sửa cuối:
@solomon2211: Bạn viết lộn 1 dòng rồi. Phải là:
PHP:
.Cells(4 + j, 4).Value = Worksheets("HO SO").Cells(i, 24).Value
Thay vì như vầy:
PHP:
.Cells(4 + j, 4).Value = Worksheets("HO SO").Cells(i, 7).Value
Vì là cột Phòng ban phân xưởng mà! Chứ có phải cột đâu địa chỉ. Còn vấn đề thời gian sai thì mình cũng đã chỉnh lại rồi. Bạn lên topic #3 tải lại nha! Thân.
 
Lần chỉnh sửa cuối:
Bài này mà dùng Autofliter với specialcells là bảo đảm chớp mắt! Anh ndu làm giúp em một đoạn code dùng Specialcells với! Tham số của Specialcells em quên hoài! Sẵn ôn lại anh nhé! (5 chai ken)
 
Làm những bài toán có liên quan đến ngày tháng thì trước khi làm phải kiểm tra kỹ phần nhập liệu ngày tháng... xem liệu chúng có thật sự là ngày tháng hay không!
File của tác giã có 1 vài chổ là dạng TEXT... khi đưa vào máy tính có định dạng trong Regional Language Settings là m/d/yyyy thì sẽ cho lổi #VALUE!
Xem lại nhé (dùng hàm ISNUMBER hoặc ISTEXT để kiểm tra)
Còn bài của Po_Pikachu: Tôi không hiểu tại sao lại phải dùng For, trong khi ta hoàn toàn có thể dùng AutoFilter (làm bằng tay tôi còn làm được nữa là...)
---------
Nói thêm với tác giã: Nếu tôi là giám đốc, chắc chắn tôi không bao giờ chấp nhận 1 bảng tính trình bày lượm thượm như kiểu của bạn... Xấu quá ---> Trong khi dử liệu này rất bình thường, đâu đến nổi không thể trình bày gọn gàng
???
Thank bạn đã nhắc nhở. May mà bạn không phải là giám đốc :-=, không thì tôi đã bị đuổi việc rồi.
Nói thêm, tôi là kỹ sư cơ khí và không hề phụ trách về nhân sự, cái này là tôi đang học hỏi để giúp cho 1 chị cùng cơ quan có thể quản lý dễ dàng trong khi chờ đợi sếp duyệt 1 phần mềm quản lý chuyennghiêpc.

Sẳn đây các bạn cho hỏi luôn là: Có thể dùng excel để quản lý nhân sự một cách chuyên nghiệp không?

Thank all!

Một cách dùng Công thức! Bạn tham khảo! Có thể chuyển thành VBA để chạy nhanh hơn!

Bạn đã giúp đúng ý của tôi. Khi đang còn lơ mơ thế này thì tốt nhất nên dùng công thức chứ VBA thì tôi chịu. Cảm ơn sự nhanh nhẹn và nhiệt tình của bạn. Đúng như ý!!!--=0
 
Chỉnh sửa lần cuối bởi điều hành viên:
Làm thử cho bạn 1 sheet lọc ngày SN... sheet còn lại tương tự:
PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
  On Error Resume Next
  Application.ScreenUpdating = False
  If Target.Address = "$A$2" Then
    Range("A4").CurrentRegion.Offset(1).ClearContents
    Sheets("Hoso").AutoFilterMode = False
    With Sheets("Hoso").Range("A1").CurrentRegion
       .Offset(, 3).Resize(, 1).NumberFormat = "mmm"
       .AutoFilter 4, Choose(Target, "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
       Union(.Offset(1, 2).Resize(, 1), .Offset(1, 22).Resize(, 2)).SpecialCells(12).Copy
       Range("B5").PasteSpecial 3: Sheets("Hoso").AutoFilterMode = False
       .Offset(, 3).Resize(, 1).NumberFormat = "dd/mm/yyyy"
    End With
    Range("A4").CurrentRegion.Resize(, 1).SpecialCells(4).Value = Evaluate("=ROW($1:$1000)")
    Target.Select
  End If
End Sub
Như tôi đã nói là dùng AutoFilter sẽ nhanh hơn! Các bạn tham khảo nhé!
Thêm nữa:
- Tôi đã sửa lại phần ngày tháng cho chuẩn với định dạng DATE
- Sửa lại font, size cùng cách bố trí dử liệu cho gọn gàng hơn
(nhìn dử liệu củ gớm quá)
 

File đính kèm

Hãy giúp tôi lập danh sách theo quý & ngày sinh tăng dần

Cơ quan tôi, cứ đến ngày sinh được tặng quà & cành bông tươi;
Vậy các bạn lập giúp danh sách sinh nhật 4 quý; nhưng được xếp theo thứ tự tăng dần trong tháng.
Rất mong các bạn giúp đỡ!

Xin cảm ơn trước & chúc xuân vui vẽ!
 
Cơ quan tôi, cứ đến ngày sinh được tặng quà & cành bông tươi;
Vậy các bạn lập giúp danh sách sinh nhật 4 quý; nhưng được xếp theo thứ tự tăng dần trong tháng.
Rất mong các bạn giúp đỡ!

Xin cảm ơn trước & chúc xuân vui vẽ!

Cái này mình nghĩ dùng lọc rồi Sort cho nhanh bạn à.
 
Cơ quan tôi, cứ đến ngày sinh được tặng quà & cành bông tươi;
Vậy các bạn lập giúp danh sách sinh nhật 4 quý; nhưng được xếp theo thứ tự tăng dần trong tháng.
Rất mong các bạn giúp đỡ!

Xin cảm ơn trước & chúc xuân vui vẽ!

Vấn đề của bạn ở đây là từ ngày sinh tính ra quý thôi! Còn việc còn lại là Sort theo ngày sinh và Dùng Pivotable lấy ra với Page là cột [Quý], Cái này không cần code gì cả!

Công thức tính quý như sau (nhiều cách lắm, đây là 1 trong nhiều cách đó):
PHP:
Giả sử A1 là ngày - định dạng dd/mm/yyyy, 
B1 sẽ trả về giá trị là quý thứ mấy trong năm của ngày tại A1:

B1 = INT((month(A1)-1)/3)+1
 
Cơ quan tôi, cứ đến ngày sinh được tặng quà & cành bông tươi;
Vậy các bạn lập giúp danh sách sinh nhật 4 quý; nhưng được xếp theo thứ tự tăng dần trong tháng.
Rất mong các bạn giúp đỡ!

Xin cảm ơn trước & chúc xuân vui vẽ!
Excel có chức năng Sort theo THÁNG, theo ngày trong TUẦN... còn sort theo NGÀY TRONG THÁNG thì hình như hỏng có ---> Hơi bị tê... các cao thủ khác có ý kiến gì không (cách làm đương nhiên là có ---> Bùn lắm thì tôi tạo 1 cột phụ ---> Nhưng quan trọng là cách nào nhanh nhất thôi)
 
Excel có chức năng Sort theo THÁNG, theo ngày trong TUẦN... còn sort theo NGÀY TRONG THÁNG thì hình như hỏng có ---> Hơi bị tê... các cao thủ khác có ý kiến gì không (cách làm đương nhiên là có ---> Bùn lắm thì tôi tạo 1 cột phụ ---> Nhưng quan trọng là cách nào nhanh nhất thôi)
Anh ndu96081631 ơi! Sort theo ngày thì hiển nhiên là kiêm luôn sort theo ngày trong tháng rồi còn gì ? Ẹc Ẹc...

Nghĩa là em đem cái cột ngày ra làm tiêu chí Sort, thì dĩ nhiên nếu sort theo tiêu chí từ nhỏ đến lớn thì ngày nhỏ ở trên, ngày lớn ở dưới! Xét trong 1 tháng đó thì cũng vẫn vậy! Ngày 01/01/2008 không thể nhỏ hơn ngày 02/01/2008 mà!

Bài này không có gì khó cả, chỉ cần 1 công thức tính ra quý từ ngày sinh, sau đó Pivotable là ra! anh chị nào có danh sách nhiều nhiều chút đưa lên em làm thử!

Em post bài ví dụ lên luôn đây! Sort theo cột Quý Sau đó theo cột Sort!
 

File đính kèm

Lần chỉnh sửa cuối:
Anh ndu96081631 ơi! Sort theo ngày thì hiển nhiên là kiêm luôn sort theo ngày trong tháng rồi còn gì ? Ẹc Ẹc...
Chưa chắc à nha
Ví dụ: Có 3 người sinh vào các ngày: 15/01/1975... 14/01/1986... 13/01/1998
vậy tức 3 người này sinh cùng 1 tháng ---> Nếu dùng Sort thông thường thì em sinh ngày 15 sẽ đứng trước em sinh ngày 14 nhé (vì thực chất 15/01/1975<14/01/1986<13/01/1998)
Kiệt nghĩ sao về trường hợp này (tôi đang nói đến việc không dùng cột phụ à nha)
 
Chưa chắc à nha
Ví dụ: Có 3 người sinh vào các ngày: 15/01/1975... 14/01/1986... 13/01/1998
vậy tức 3 người này sinh cùng 1 tháng ---> Nếu dùng Sort thông thường thì em sinh ngày 15 sẽ đứng trước em sinh ngày 14 nhé (vì thực chất 15/01/1975<14/01/1986<13/01/1998)
Kiệt nghĩ sao về trường hợp này (tôi đang nói đến việc không dùng cột phụ à nha)

Em xin lỗi, em nhầm! muốn sort như vậy theo em làm cột phụ thì mới sort được!
 
Làm thử cho bạn 1 sheet lọc ngày SN... sheet còn lại tương tự:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
..........
       .Offset(, 3).Resize(, 1).NumberFormat = "mmm"
       .AutoFilter 4, Choose(Target, "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
..........
End Sub
Như tôi đã nói là dùng AutoFilter sẽ nhanh hơn! Các bạn tham khảo nhé!
Thêm nữa:
- Tôi đã sửa lại phần ngày tháng cho chuẩn với định dạng DATE
- Sửa lại font, size cùng cách bố trí dử liệu cho gọn gàng hơn
(nhìn dử liệu củ gớm quá)

sao không là thế này cho nó gọn
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
..........
       .Offset(, 3).Resize(, 1).NumberFormat = "m"
       .AutoFilter 4, Target
..........
End Sub

Mượn file của ndu, làm nốt yêu cầu lọc nơi ở (dùng AdvancedFilter)
 

File đính kèm

Lần chỉnh sửa cuối:
Excel có chức năng Sort theo THÁNG, theo ngày trong TUẦN... còn sort theo NGÀY TRONG THÁNG thì hình như hỏng có ---> Hơi bị tê... các cao thủ khác có ý kiến gì không (cách làm đương nhiên là có ---> Bùn lắm thì tôi tạo 1 cột phụ ---> Nhưng quan trọng là cách nào nhanh nhất thôi)
Vậy là trước tiên ta cứ lọc từng quý cái đã. (Để chỉ còn lại 1/4 số lượng trong DS)
Sau đó ta xử tiếp bằng cách nào đó tối ưu.

Xin cảm ơn các bạn đã cho đường hướng.

Trước đây mình xài hàm tự tạo để ra cột phụ như sau:
PHP:
Function ThangNgay (Optional Dat As Date) As String
 Const Chu As String ="0123456789ABCDEGHIKLMNOPQTUVXYZ"
 
 If Dat = 0 Then Dat = Date
 ThangNgay=Mid$(Chu, Month(Dat) + 11 , 1) &  Mid$(Chu, Day(Dat), 1)
 
End Function
Sau đó xếp DS quý theo cột phụ này
Nhưng sau khi gia nhập GPE.COM, mình nghĩ đó chưa chắc phải là cách tối ưu!

Chúc xuân vui vẽ! :-= @$@!^%
 
Lần chỉnh sửa cuối:
sao không là thế này cho nó gọn
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
..........
       .Offset(, 3).Resize(, 1).NumberFormat = "m"
       .AutoFilter 4, Target
..........
End Sub
Mượn file của ndu, làm nốt yêu cầu lọc nơi ở (dùng AdvancedFilter)
Tôi thật không ngờ là có thể sort theo kiểu này... Cảm ơn Boyxin
Còn phần lọc nơi ở, tại sao không dùng AutoFilter luôn, khỏi cột phụ?
AutoFilter 7, "*" & Target & "*"
Chỉ cần chú ý thêm 1 chuyện là: Nếu LỌC không ra giá trị nào thì khỏi cần phải điền STT
 
Dùng Query

sao không là thế này cho nó gọn
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
..........
       .Offset(, 3).Resize(, 1).NumberFormat = "m"
       .AutoFilter 4, Target
..........
End Sub

Mượn file của ndu, làm nốt yêu cầu lọc nơi ở (dùng AdvancedFilter)

Với bài này, nếu dùng Query thì kết quả thu được sẽ tốt hơn.
Đầu tiên, tôi copy sheet hoso vào một file mới (ở sheet1) và ghi thành file HoSo.
Sau đó từ sheet tạo danh sách, tôi dùng Query để lấy dữ liệu. Trong MS Query, sử dụng tham số (parameters) để chọn tháng. Sắp dữ liệu theo khóa month(SNhat)+day(SNhat) có thể sắp thêm cột Phòng và Đơn vị.
Trở về E, điều chỉnh tùy chọn tham số để tự cập nhật theo 1 validation (như của anh BoyXin đã làm) để chọn tháng.
Mã:
SELECT `Sheet1$`.HoTen, `Sheet1$`.SNhat, `Sheet1$`.DVi, `Sheet1$`.PXuong
FROM `E:\My Documents\HoSo`.`Sheet1$` `Sheet1$`
WHERE (month(SNhat)=?) AND (day(snhat)=?)
ORDER BY month(snhat)+day(snhat), `Sheet1$`.DVi, `Sheet1$`.PXuong
 
Hôm nay em mới có thời gian xem lại cái này các bác ạ!!!
Qua việc xem lại thì em lại phát hiện thấy cái file của em thiếu một cột đó là "Nghĩ việc" đánh dấu những CB-CNV đã nghĩ việc.
Vậy thì thế này: nếu em muốn lọc sinh nhật nhưng trừ những người nghĩ việc ra thì làm thế nào ạ?
Mượn file đã hoàn chỉnh của bác boyxin, em chèn thêm 1 cột và đánh những người nghĩ việc. Các bác xem có cách gì hướng dẫn em với!!!

Đa tạ các bác nhiều!!!
 

File đính kèm

Hôm nay em mới có thời gian xem lại cái này các bác ạ!!!
Qua việc xem lại thì em lại phát hiện thấy cái file của em thiếu một cột đó là "Nghĩ việc" đánh dấu những CB-CNV đã nghĩ việc.
Vậy thì thế này: nếu em muốn lọc sinh nhật nhưng trừ những người nghĩ việc ra thì làm thế nào ạ?
Mượn file đã hoàn chỉnh của bác boyxin, em chèn thêm 1 cột và đánh những người nghĩ việc. Các bác xem có cách gì hướng dẫn em với!!!

Đa tạ các bác nhiều!!!
Lọc thêm lần nữa với điều kiện Blanks cho cột Y là được mà (cái này làm bằng tay cũng nghĩ ra được)
Vậy code sửa lại:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  On Error Resume Next
  Application.ScreenUpdating = False
  If Target.Address = "$A$2" Then
    Range("A4").CurrentRegion.Offset(1).ClearContents
    Sheets("Hoso").AutoFilterMode = False
    With Sheets("Hoso").Range("A1").CurrentRegion
       .Offset(, 3).Resize(, 1).NumberFormat = "m"
       .AutoFilter 4, Target
       .AutoFilter 25, "="
       Union(.Offset(1, 2).Resize(, 1), .Offset(1, 22).Resize(, 2)).SpecialCells(12).Copy
       Range("B5").PasteSpecial 3: Sheets("Hoso").AutoFilterMode = False
       .Offset(, 3).Resize(, 1).NumberFormat = "dd/mm/yyyy"
    End With
    Range("A4").CurrentRegion.Resize(, 1).SpecialCells(4).Value = Evaluate("=ROW($1:$1000)")
    Target.Select
  End If
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Nếu dùng công thức thì trường hợp này khắc phục thế nào ạ??? Em loay hoay mãi mà áp dụng cái VBA của anh chị không được.
Nếu anh chị nào giúp được em làm công thức thì tốt quá!!!

Anh ndu96081631 cố giúp em cái vụ này với!!! Biết là cứ hỏi thế này, các anh bày sẳn chỉ việc ăn thì không thể "chóng lớn" được, nhưng em cần quá!!!
 

File đính kèm

Lần chỉnh sửa cuối:
Nếu dùng công thức thì trường hợp này khắc phục thế nào ạ??? Em loay hoay mãi mà áp dụng cái VBA của anh chị không được.
Nếu anh chị nào giúp được em làm công thức thì tốt quá!!!
Bạn làm thế cũng đúng rồi còn gì!
Lưu ý:
1> Cột phụ của bạn có dùng hàm UPPER, theo tôi là không cần thiết, vì hàm SEARCH không phân biệt chử HOA và thường đâu
2> Bạn để ý dử liệu của bạn có nhiều chổ gõ sai... Ví dụ bạn tìm chử Khánh Hòa nhưng trong dử liệu của bạn lại là Khánh Hoà (dấu huyền nằm ở chử a) ---> Nên có khi sẽ không tìm ra
 
Bạn làm thế cũng đúng rồi còn gì!
Lưu ý:
1> Cột phụ của bạn có dùng hàm UPPER, theo tôi là không cần thiết, vì hàm SEARCH không phân biệt chử HOA và thường đâu
2> Bạn để ý dử liệu của bạn có nhiều chổ gõ sai... Ví dụ bạn tìm chử Khánh Hòa nhưng trong dử liệu của bạn lại là Khánh Hoà (dấu huyền nằm ở chử a) ---> Nên có khi sẽ không tìm ra
Em đang quan tâm ở chổ Sinh nhật anh ndu96081631 ạ!!! Ý em là nếu dùng công thức lọc tìm sinh nhật thì làm thế nào để tránh không lọc những người đã nghỉ việc. File này là em lấy của anh ca da fi ở bài #2
 
Em đang quan tâm ở chổ Sinh nhật anh ndu96081631 ạ!!! Ý em là nếu dùng công thức lọc tìm sinh nhật thì làm thế nào để tránh không lọc những người đã nghỉ việc. File này là em lấy của anh ca da fi ở bài #2
Tôi đề xuất thế này: Lọc sinh nhật và lọc theo nơi thường trú ta cho chung vào 1 sheet luôn ---> Sẽ có 1 Option Button chọn xem lọc theo tiêu chí gì? Bạn thấy sao?
Xem file đính kèm nhé

Bạn nhớ chứ ý là có thể dử liệu của bạn gõ sai ---> tôi đã chỉnh chử Hoà thành Hòa rồi đấy ---> Không biết còn chổ nào sai nữa không?
Nên nhớ sai sót trong nhập liệu thì chẳng có công thức hay code nào có thể lường trước nỗi
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Mình muốn các bạn giúp mình nha: Mình có 1 cột ghi ngày tháng năm sinh của mọi người (18/12/1976) mình muốn cột bên cạnh hiển thị ngày sinh nhật của mọi người (18/12/2009). Nhờ các cao thủ gúp nha! Thank!
 
Mình muốn các bạn giúp mình nha: Mình có 1 cột ghi ngày tháng năm sinh của mọi người (18/12/1976) mình muốn cột bên cạnh hiển thị ngày sinh nhật của mọi người (18/12/2009). Nhờ các cao thủ gúp nha! Thank!
bạn nhập công thức DATE(YEAR(NOW()),MONTH(ngaysinh),DAY(ngaysinh))
 
Mình muốn các bạn giúp mình nha: Mình có 1 cột ghi ngày tháng năm sinh của mọi người (18/12/1976) mình muốn cột bên cạnh hiển thị ngày sinh nhật của mọi người (18/12/2009). Nhờ các cao thủ gúp nha! Thank!
Cái này không khó, nhưng trước tiên có 1 trường hợp cần xác định rõ!
Ví dụ 1 người sinh vào 29/02/1988 thì bạn muốn năm nay SN vào ngày nào? Trước 1 ngày hay sau 1 ngày? (vì năm nay không có ngày 29/2)
 
Cái này không khó, nhưng trước tiên có 1 trường hợp cần xác định rõ!
Ví dụ 1 người sinh vào 29/02/1988 thì bạn muốn năm nay SN vào ngày nào? Trước 1 ngày hay sau 1 ngày? (vì năm nay không có ngày 29/2)
Cái đó không quan trọng đâu mà bạn cứ bày cho mình đúng ngày đi cũng được
 
Như vậy thì vẫn phải nhập thủ công ngày và tháng à. Tại sao mình ngu vậy nhỉ.
Nhập thủ công là sao chứ:
Ví dụ tại cell A1 là ngày tháng năm sinh, vậy công thức của bạn tại B1 là:
=DATE(Year(Today()),Month(A1),Day(A1))
Chỉ nhập công thức này 1 lần rồi kéo xuống thôi
Lưu ý: Trường hợp đặc biệt như tôi nói ở trên, nếu người nào đó sinh vào 28/2/1988 thì công thức trên sẽ cho rằng sinh nhật năm nay nhằm ngày 1/3/2009
Nếu muốn trước 1 ngày, đơn giản nhất là IF
Tôi nghĩ, theo tâm lý chung chả ai muốn SN sau cả (trước hoặc đúng ngày là tốt nhất)
 
Nhập thủ công là sao chứ:
Ví dụ tại cell A1 là ngày tháng năm sinh, vậy công thức của bạn tại B1 là:
=DATE(Year(Today()),Month(A1),Day(A1))
Chỉ nhập công thức này 1 lần rồi kéo xuống thôi
Lưu ý: Trường hợp đặc biệt như tôi nói ở trên, nếu người nào đó sinh vào 28/2/1988 thì công thức trên sẽ cho rằng sinh nhật năm nay nhằm ngày 1/3/2009
Nếu muốn trước 1 ngày, đơn giản nhất là IF
Tôi nghĩ, theo tâm lý chung chả ai muốn SN sau cả (trước hoặc đúng ngày là tốt nhất)
OK cao thủ quá cám ơn nha!
 
Nhập thủ công là sao chứ:
Ví dụ tại cell A1 là ngày tháng năm sinh, vậy công thức của bạn tại B1 là:
=DATE(Year(Today()),Month(A1),Day(A1))
Chỉ nhập công thức này 1 lần rồi kéo xuống thôi
Lưu ý: Trường hợp đặc biệt như tôi nói ở trên, nếu người nào đó sinh vào 28/2/1988 thì công thức trên sẽ cho rằng sinh nhật năm nay nhằm ngày 1/3/2009
Nếu muốn trước 1 ngày, đơn giản nhất là IF
Tôi nghĩ, theo tâm lý chung chả ai muốn SN sau cả (trước hoặc đúng ngày là tốt nhất)

Em cũng đồng ý với cái "tâm lý chung" mà anh nói.
Và nếu như vậy thì em xin đề nghị công thức này, khỏi IF luôn:
=EDATE(A1, (YEAR(NOW())-YEAR(A1))*12)

P/S: EDATE là hàm trong bộ Analysis ToolPak Addin.
 
Lần chỉnh sửa cuối:
He, được voi đòi hai Bà Trưng!!!
Không biết là có cách nào hiển thị được dòng "Người lập biểu ................................... Phòng TCLĐTL" cuối bảng thống kê không nhỉ?
Ý em là, sau khi tạo được bảng thống kê, thì hiển thị được dòng cuối này để in ra và ký ấy. Không thể tạo trong Footer được vì Footer nó sẽ hiển thị ở tất cả các trang, còn em chỉ muốn nó hiện ở trang cuối thôi.
Em nghĩ cái này không khả thi lắm, nhưng vẫn muốn hỏi, biết đâu có anh nào biết thì sao --=0
 
He, được voi đòi hai Bà Trưng!!!
Không biết là có cách nào hiển thị được dòng "Người lập biểu ................................... Phòng TCLĐTL" cuối bảng thống kê không nhỉ?
Ý em là, sau khi tạo được bảng thống kê, thì hiển thị được dòng cuối này để in ra và ký ấy. Không thể tạo trong Footer được vì Footer nó sẽ hiển thị ở tất cả các trang, còn em chỉ muốn nó hiện ở trang cuối thôi.
Em nghĩ cái này không khả thi lắm, nhưng vẫn muốn hỏi, biết đâu có anh nào biết thì sao --=0
Vậy bạn dùng VBA đi cho lẹ...
Còn nếu vẫn quyết dùng công thức thì cái khó lớn nhất là không biết danh sách của ta tới đâu mà đặt mấy dòng "Người lập biểu ... Phòng TCLĐTL" ở cuối bảng thống kê
Vậy có 1 cách củ chuối là sau khi bạn kéo fill công thức xong, đặt mấy dòng này ở dưới cùng ---> Khi lọc ra kết quả, những dòng nào rổng thì bạn ẩn đi để dòng cuối trang được liên tục với bảng tính ở trên
 
Vậy bạn dùng VBA đi cho lẹ...
Còn nếu vẫn quyết dùng công thức thì cái khó lớn nhất là không biết danh sách của ta tới đâu mà đặt mấy dòng "Người lập biểu ... Phòng TCLĐTL" ở cuối bảng thống kê
Vậy có 1 cách củ chuối là sau khi bạn kéo fill công thức xong, đặt mấy dòng này ở dưới cùng ---> Khi lọc ra kết quả, những dòng nào rổng thì bạn ẩn đi để dòng cuối trang được liên tục với bảng tính ở trên

Như vậy thì phải ẩn thủ công hả anh? Tính em lại thích tự động, dốt mà cứ đòi ....:-=. Thôi, để em làm thủ công vậy.... Đành thế thôi!!!
 
Em thấy các bác giải quyết vấn đề thật là pro!
hic em mới đi làm, chưa tham gia 1 khoá học nào cả về Office.
nhìn thành quả các bác làm thì ổn thật,
hic mà em ko biết làm thế nào để đc ra như thế cả.
PPH code:
PHP Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Application
.ScreenUpdating = False
If Target.Address = "$A$2" Then
Range
("A4").CurrentRegion.Offset(1).ClearContents
Sheets
("Hoso").AutoFilterMode = False
With Sheets
("Hoso").Range("A1").CurrentRegion
.Offset(, 3).Resize(, 1).NumberFormat = "mmm"
.AutoFilter 4, Choose(Target, "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
Union(.Offset(1, 2).Resize(, 1), .Offset(1, 22).Resize(, 2)).SpecialCells(12).Copy
Range
("B5").PasteSpecial 3: Sheets("Hoso").AutoFilterMode = False
.Offset(, 3).Resize(, 1).NumberFormat = "dd/mm/yyyy"
End With
Range
("A4").CurrentRegion.Resize(, 1).SpecialCells(4).Value = Evaluate("=ROW($1:$1000)")
Target.Select
End
If
End Sub

vậy nhưng cái đó là j
giải thích cho em với
em cũng đang cần phải lọc ngày sinh
mà chưa biết làm thế nào cả
rất mong nhận được sự giúp đỡ của các bán!
cảm ơn nhiều.

 
Lần chỉnh sửa cuối:
Như vậy thì phải ẩn thủ công hả anh? Tính em lại thích tự động, dốt mà cứ đòi ....:-=. Thôi, để em làm thủ công vậy.... Đành thế thôi!!!
Thì như tôi đã nói ở trên: dùng VBA
Tại bạn cứ đòi công thức thì đành chịu vậy!
Nếu dùng VBA thì với code tôi đã làm, chỉ cần thêm vài dòng nữa là có thể đúng yêu cầu của bạn!
Vậy nhé

vậy nhưng cái đó là j
giải thích cho em với
Mấy cái đó người ta gọi là CODE, được lập trình mà ra (hoặc Record macro mà ra)

em cũng đang cần phải lọc ngày sinh
mà chưa biết làm thế nào cả
rất mong nhận được sự giúp đỡ của các bán!
cảm ơn nhiều.
Bạn đưa file lên mới biết nên làm thế nào (mổi bài có cấu trúc dử liệu khác nhau mà)
Còn không thì với việc trích lọc, bạn có thể nghiên cứu AutoFilter hoặc Advanced Filter xem thử
 
Lần chỉnh sửa cuối:
Không biết trong excel có cách nào tạo lịch như hình bên dưới em đính kèm không? ý em là khi click vào 1 ô định sẵn sẽ có một cửa sổ hiện ra là tờ lịch và mình chỉ chọn ngày cho phù hợp.
Anh/chị nào biết mách em với.
P/S: GPE dạo này làm sao mà tạo đề tài mới không được!!! !$@!!

lich.jpg
 
Không biết trong excel có cách nào tạo lịch như hình bên dưới em đính kèm không? ý em là khi click vào 1 ô định sẵn sẽ có một cửa sổ hiện ra là tờ lịch và mình chỉ chọn ngày cho phù hợp.
Anh/chị nào biết mách em với.
P/S: GPE dạo này làm sao mà tạo đề tài mới không được!!! !$@!!

lich.jpg
Đương nhiên là được ---> Gữi bạn 1 ví dụ đơn giãn nhất!
 

File đính kèm

Em muốn nó xuất hiện ở tất cả các dòng của 1 cột nào đó, dạng list trong validation ấy, được không anh?

Bái phục anh ndu96081631, cái gì cũng làm được!!!
Vì bạn không biết tự sửa code nên tốt nhất bạn nên đưa dử liệu lên đây, nói cho tôi biết bạn muốn Calendar xuất hiện khi click vào đâu ---> Làm luôn 1 lần cho gọn!
 
Thank anh đã giúp. Em có 1 câu hỏi: Vậy về nguyên tắc, nếu khi dữ liệu quá 2500 người thì mình thay đổi cái này phải không ạ?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Union([D4:D2500], [J4:J2500], [AB4:AB2500], [AD4:AD2500], [AU4:AV2500]), Target) Is Nothing Then
Calendar1.Visible = True
With Target
Calendar1.Top = .Top
Calendar1.Left = .Offset(, 1).Left
End With
Else:
Calendar1.Visible = False
End If
End Sub
Private Sub Calendar1_Click()
With ActiveCell
.Value = Calendar1
.NumberFormat = "dd/mm/yyyy"
End With
'Calendar1.Visible = False
End Sub
 
Thank anh đã giúp. Em có 1 câu hỏi: Vậy về nguyên tắc, nếu khi dữ liệu quá 2500 người thì mình thay đổi cái này phải không ạ?
Chính xác (mấy cái tô đỏ ấy)
Vậy là bạn có thể "nhập môn VBA" được rồi đấy
Từ việc chú ý Quan sát ---> Suy luận ---> Phán đoán ---> Thí nghiệm... bạn có thể từng bước hiểu dần code (bạn có thể thí nghiệm bằng cách thay số 2500 thành 20 xem lúc ấy ta chọn dòng 21 cái Calendar có chạy ra không)
Chúc bạn thành công!
 

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

Back
Top Bottom