Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Làm thế nào để tính toán tuổi từ trước khi 1 tháng 1 năm 1900 trong Excel

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:245104
TÓM TẮT
Mặc dù Microsoft Excel công thức ngày chỉ có thể sử dụng ngày tháng đi vào giữa 1/1/1900 và 12/31/9999, bạn có thể sử dụng một tùy chỉnh Microsoft Visual Basic cho các ứng dụng chức năng để tính toán tuổi (trong năm) của một ai đó hoặc một cái gì đó đã được tạo ra lần đầu tiên trước 1 tháng một năm 1900.

back to the top

Sử dụng Macro để tính toán tuổi

Microsoft cung cấp lập trình ví dụ để minh hoạ chỉ, không có bảo hành hoặc thể hiện hay ngụ ý. Điều này bao gồm, nhưng không giới hạn, bảo đảm ngụ ý khả năng bán hàng hoặc cho một mục đích cụ thể. Bài viết này giả định rằng bạn đã quen thuộc với ngôn ngữ lập trình mà đang được chứng minh và với những công cụ được sử dụng để tạo ra và gỡ lỗi thủ tục. Microsoft hỗ trợ các kỹ sư có thể giúp giải thích các chức năng của một thủ tục cụ thể, nhưng họ sẽ không sửa đổi các ví dụ để cung cấp thêm chức năng hoặc xây dựng quy trình để đáp ứng các yêu cầu cụ thể của bạn.
Excel vào ngày trước khi đến 1/1/1900 như văn bản. Chức năng này hoạt động cho những ngày tháng được nhập như văn bản bắt đầu bằng 1/1/0001, bình thường ngày, và có thể xử lý các ngày đến khi ngày bắt đầu trước năm 1900 và kết thúc ngày là sau 1900. Để sử dụng vĩ mô, hãy làm theo các bước sau:
  1. Khởi động Excel. Xem bảng tính trên mà bạn muốn sử dụng các chức năng.
  2. Nhấn ALT + F11 để chuyển đến Visual Basic Editor.
  3. Trên các Chèn trình đơn, nhấp vào Mô-đun.
  4. Gõ mã sau trong module:
    ' This is the initial function. It takes in a start date and an end date.Public Function AgeFunc(stdate As Variant, endate As Variant)        ' Dim our variables.    Dim stvar As String    Dim stmon As String    Dim stday As String    Dim styr As String    Dim endvar As String    Dim endmon As String    Dim endday As String    Dim endyr As String    Dim stmonf As Integer    Dim stdayf As Integer    Dim styrf As Integer    Dim endmonf As Integer    Dim enddayf As Integer    Dim endyrf As Integer    Dim years As Integer        ' This variable will be used to modify string length.    Dim fx As Integer    fx = 0        ' Calls custom function sfunc which runs the Search worksheet function    ' and returns the results.    ' Searches for the first "/" sign in the start date.    stvar = sfunc("/", stdate)        ' Parse the month and day from the start date.    stmon = Left(stdate, sfunc("/", stdate) - 1)    stday = Mid(stdate, stvar + 1, sfunc("/", stdate, sfunc("/", stdate) + 1) - stvar - 1)        ' Check the length of the day and month strings and modify the string     ' length variable.    If Len(stday) = 1 Then fx = fx + 1    If Len(stmon) = 2 Then fx = fx + 1        ' Parse the year, using information from the string length variable.    styr = Right(stdate, Len(stdate) - (sfunc("/", stdate) + 1) - stvar + fx)            ' Change the text values we obtained to integers for calculation     ' purposes.    stmonf = CInt(stmon)    stdayf = CInt(stday)    styrf = CInt(styr)        ' Check for valid date entries.    If stmonf < 1 Or stmonf > 12 Or stdayf < 1 Or stdayf > 31 Or styrf < 1 Then        AgeFunc = "Invalid Date"        Exit Function    End If    ' Reset the string length variable.    fx = 0        ' Parse the first "/" sign from the end date.    endvar = sfunc("/", endate)        ' Parse the month and day from the end date.    endmon = Left(endate, sfunc("/", endate) - 1)    endday = Mid(endate, endvar + 1, sfunc("/", endate, sfunc("/", endate) + 1) - endvar - 1)        ' Check the length of the day and month strings and modify the string     ' length variable.    If Len(endday) = 1 Then fx = fx + 1    If Len(endmon) = 2 Then fx = fx + 1        ' Parse the year, using information from the string length variable.    endyr = Right(endate, Len(endate) - (sfunc("/", endate) + 1) - endvar + fx)            ' Change the text values we obtained to integers for calculation     ' purposes.    endmonf = CInt(endmon)    enddayf = CInt(endday)    endyrf = CInt(endyr)        ' Check for valid date entries.    If endmonf < 1 Or endmonf > 12 Or enddayf < 1 Or enddayf > 31 Or endyrf < 1 Then        AgeFunc = "Invalid Date"        Exit Function    End If        ' Determine the initial number of years by subtracting the first and     ' second year.    years = endyrf - styrf        ' Look at the month and day values to make sure a full year has passed.     If stmonf > endmonf Then        years = years - 1    End If            If stmonf = endmonf And stdayf > enddayf Then        years = years - 1    End If    ' Make sure that we are not returning a negative number and, if not,     ' return the years.    If years < 0 Then        AgeFunc = "Invalid Date"    Else        AgeFunc = years    End If    End Function' This is a second function that the first will call.' It runs the Search worksheet function with arguments passed from AgeFunc.' It is used so that the code is easier to read.Public Function sfunc(x As Variant, y As Variant, Optional z As Variant)    sfunc = Application.WorksheetFunction.Search(x, y, z)End Function					
  5. Lưu tập tin.
  6. Nhập dữ liệu sau:
    A1   01/01/1887A2   02/02/1945						
    Trong ô A3, nhập vào công thức sau
    = AgeFunc)startdate,enddate)
    nơi startdate là một tế bào của bạn ngày đầu tiên (A1) chỉ và enddate là một tế bào của bạn ngày thứ hai (A2).

    Kết quả nên là 58.
LƯU Ý: Kiểm tra tất cả các ngày trước khi 1/1/1900 cho tính hợp lệ. Ngày tháng đã nhập như văn bản không được chọn bởi Excel.

back to the top
THAM KHẢO
Để biết thêm chi tiết về cách sử dụng mẫu mã trong bài viết này, bấmsố bài viết dưới đây để xem bài viết trong cơ sở kiến thức Microsoft:
212536Làm thế nào để chạy mẫu mã từ bài viết cơ sở kiến thức

back to the top
XL2000 xl2003 xl2007

Warning: This article has been translated automatically

Thuộc tính

ID Bài viết: 245104 - Xem lại Lần cuối: 08/21/2011 11:38:00 - Bản sửa đổi: 2.0

Microsoft Office Excel 2007, Microsoft Excel 2002 Standard Edition, Microsoft Excel 2000 Standard Edition

  • kbhowtomaster kbmt KB245104 KbMtvi
Phản hồi