Hỏi về hàm dateadd()?

Liên hệ QC

diunthp

Thành viên mới
Tham gia
20/5/11
Bài viết
13
Được thích
0
Các bạn ơi cho mình hỏi: hàm dateadd() có phải là hàm tự tạo không mà trong bảng tính excel của mình không sử dụng được, nếu là hàm tự tạo thì tạo như thế nào và làm thế nào để sử dụng được?Giúp mình với nhe!
Thanks!
 
Hàm DateAdd là 1 hàm có sẵn của VBA. Tuy nhiên hàm VBA không dùng trực tiếp trên sheet được.
Vậy hàm bạn thấy là hàm tự tạo. Bạn muốn tạo hoặc muốn người khác tạo cho bạn, thì phải nói rõ chức năng hàm, cú pháp hàm, ý nghĩa tham số hàm, và cách sử dụng hàm.
 
Trong VBA đê, xin mời tham khào

DateAdd Function

Returns a Variant (Date) containing a date to which a specified time interval has been added.
Syntax
DateAdd(interval, number, date)

The DateAdd function syntax has these named arguments:
Part|Description
interval| Required. String expression that is the interval of time you want to add.
number |Required. Numeric expression that is the number of intervals you want to add. It can be positive (to get dates in the future) or negative (to get dates in the past).
Date|Required. Variant ( Date ) or literal representing date to which the interval is added.

The interval argument has these settings:
Part|Description
yyyy| Year
q |Quarter
M|Month
. . |. . . .
s|Second

Ví dụ:

PHP:
 Dim Dat As Date

 Dat = DateAdd("M", 3.5, Date)
 MsgBox Dat
 
Lần chỉnh sửa cuối:
Cảm ơn bạn!
Mình muốn tính ngày tăng lương tiếp theo của các cán bộ khi đã có ngày tăng lương gần nhất, tìm trên mạng thấy có hàm dateadd() có cấu trúc và chức năng như thế này:
Khi bạn muốn tăng hay giảm đối với một giá trị thời gian, nếu bạn dùng toán tử + a (trong đó a là một số nguyên) thì SQL chỉ hiểu số nguyên đó là số ngày được tăng (nếu a là số dương) hay giảm (nếu a là số âm). Nếu bạn muốn tăng/giảm theo năm, tháng, quí, ngày, tuần, giờ, phút giây, … thì bạn phải qui đổi ra đơn vị ngày, bạn mất nhiều thời gian để qui đổi.
Vì thế hàm DATEADD
sẽ là một lựa chọn tốt nhất. Hàm DATEADD trả về một giá trị ngày mới khi nó được cộng thêm một khoảng thời gian đặc biệt được chỉ định (datepart)
Cú pháp
:
DATEADD (
datepart, number, date)
Trong đó
:
  • datepart: là một đối số truyền vào mà bạn mong muốn tăng hay giảm, dưới đây là một danh sách các datepart do Microft SQL Server qui định:
DatepartAbbreviations
Yearyy, yyyy
quarterqq, q
Monthmm, m
dayofyeardy, y
Daydd, d
Weekwk, ww
Hourhh
minutemi, n
secondss, s
millisecondms

  • number: là một số nguyên bạn cần thêm vào date (số nguyên có thể âm hay dương tuỳ tý. Nếu bạn muốn tăng thì số nguyên sẽ là dương; ngược lại, nếu bạn muốn giảm thì số nguyên sẽ là âm). Nếu bạn truyền vào một con số lẽ, ví dụ 2.85, SQL sẽ tự động bỏ phần lẽ .35, lấy con số 2 đi thao tác.
  • date: là ngày mà bạn muốn tăng/giảm, date có thể có kiểu dữ liệu là datetime hay smalldatetime, hay là kiểu string nhưng có kiểu định dạng ngày tháng, ví dụ: ’8/29/2010′, tức ngày 29 tháng 8 năm 2010.
Ví dụ:
Hôm nay là ngày 28 tháng 8 năm 2010, bạn muốn thăng lên 1 ngày và 1 tháng. Tức giá trị bạn mong muốn là ngày 29 tháng 9 năm 2010, được viết như sau:


SELECT DATEADD(month,1,DATEADD(day,1,'8/28/2010'))

=> kết quả trả về là 29/09/2010
Thấy có thế áp dụng vào công việc của mình, nhưng mình không bit gì về VBA cả nên nhờ các bạn chỉ giùm: tạo như thế nào và làm thế nào để sử dụng nó?
Thanks!
 
Nếu chỉ cần trong công việc thường ngày, đại khái như ngày tăng lương tiếp theo, không cần quan tâm ngày lẻ, giờ phút giây, bạn hãy dùng hàm edate trong bộ Analysis Toolpak

Cú pháp:

EDate(StartDate, Month)

StartDate là ngày bắt đầu cần tính (chẳng hạn ngày tăng lương gần nhất)
Months là số tháng cộng thêm vào, chẳng hạn như 6 tháng tăng lương 1 lần, sẽ là 6.

Months là số nguyên và có thể là số âm.
 
Nhưng bạn ơi Edate() hình như cũng là hàm tự tạo hay sao đấy, mình không thấy có?
 
Mình mới chập chững học excel, đọc mãi rồi cũng bit lơ mơ về cài đặt add-in nhưng lại chưa bít viết mã, mình muốn viết mã cho hàm dateadd() với công dụng như trên, nhờ các bạn giúp nhé.
Cảm ơn nhìu nhìu!!!!
 
Ý bạn là sao? Nhất định DateAdd chứ không chịu EDate à? EDate là Addin Analysis Toolpak của Office, có sẵn, chỉ việc đánh dấu vô. Nếu nó đòi đĩa thì bỏ đĩa vô, vậy thôi.
 
Mình muốn nhân cơ hội này học về VBA luôn, hơn nữa mình thấy dateadd() có nhiều ứng dụng hay hơn, mong bạn chỉ giáo?
Thanks so much!!!!!!!
 
PHP:
Function AddDate(StartDate As Double, Num As Double, Criteria As String) As Date
     AddDate = DateAdd(Criteria, Num, StartDate)
End Function



AddDate.jpg
 
Web KT
Back
Top Bottom