Làm thế nào để bạn tìm thấy sự khác biệt ngày trong ngày?

Nếu bạn muốn tính số ngày giữa hai ngày trong Excel, điều này có thể được thực hiện bằng cách trừ ngày trước đó cho ngày sau

Ví dụ: nếu ngày bắt đầu được lưu trong ô B1 và ​​ngày kết thúc được lưu trong ô B2, thì số ngày giữa hai ngày này được tính bằng cách nhập nội dung sau vào bất kỳ ô Excel nào

Phương pháp này hoạt động vì ngày Excel được lưu trữ nội bộ dưới dạng số nguyên đơn giản. Chỉ có định dạng của một ô Excel làm cho giá trị của nó được hiển thị dưới dạng ngày, thay vì dưới dạng số đơn giản

Điều này được thể hiện trong ví dụ dưới đây

Ví dụ về cách sử dụng công thức trừ để tính số ngày giữa hai ngày trong Excel

Ô B3 của bảng tính sau đây hiển thị hàm Yearfrac trong Excel, dùng để tính số năm giữa hai ngày trong ô B1 và ​​B2

không sử dụng Lib chỉ là mã thuần túy

#Calculate the Days between Two Date

daysOfMonths = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

def isLeapYear[year]:

    # Pseudo code for this algorithm is found at
    # //en.wikipedia.org/wiki/Leap_year#Algorithm
    ## if [year is not divisible by 4] then [it is a common Year]
    #else if [year is not divisable by 100] then [ut us a leap year]
    #else if [year is not disible by 400] then [it is a common year]
    #else[it is aleap year]
    return [year % 4 == 0 and year % 100 != 0] or year % 400 == 0

def Count_Days[year1, month1, day1]:
    if month1 ==2:
        if isLeapYear[year1]:
            if day1 < daysOfMonths[month1-1]+1:
                return year1, month1, day1+1
            else:
                if month1 ==12:
                    return year1+1,1,1
                else:
                    return year1, month1 +1 , 1
        else: 
            if day1 < daysOfMonths[month1-1]:
                return year1, month1, day1+1
            else:
                if month1 ==12:
                    return year1+1,1,1
                else:
                    return year1, month1 +1 , 1
    else:
        if day1 < daysOfMonths[month1-1]:
             return year1, month1, day1+1
        else:
            if month1 ==12:
                return year1+1,1,1
            else:
                    return year1, month1 +1 , 1


def daysBetweenDates[y1, m1, d1, y2, m2, d2,end_day]:

    if y1 > y2:
        m1,m2 = m2,m1
        y1,y2 = y2,y1
        d1,d2 = d2,d1
    days=0
    while[not[m1==m2 and y1==y2 and d1==d2]]:
        y1,m1,d1 = Count_Days[y1,m1,d1]
        days+=1
    if end_day:
        days+=1
    return days


# Test Case

def test[]:
    test_cases = [[[2012,1,1,2012,2,28,False], 58], 
                  [[2012,1,1,2012,3,1,False], 60],
                  [[2011,6,30,2012,6,30,False], 366],
                  [[2011,1,1,2012,8,8,False], 585 ],
                  [[1994,5,15,2019,8,31,False], 9239],
                  [[1999,3,24,2018,2,4,False], 6892],
                  [[1999,6,24,2018,8,4,False],6981],
                  [[1995,5,24,2018,12,15,False],8606],
                  [[1994,8,24,2019,12,15,True],9245],
                  [[2019,12,15,1994,8,24,True],9245],
                  [[2019,5,15,1994,10,24,True],8970],
                  [[1994,11,24,2019,8,15,True],9031]]

    for [args, answer] in test_cases:
        result = daysBetweenDates[*args]
        if result != answer:
            print "Test with data:", args, "failed"
        else:
            print "Test case passed!"

test[]

Xin chào. Bạn có thể vui lòng giúp tôi tìm ra cách đếm số lần nhiều phạm vi ngày cài đặt xảy ra mỗi tuần của mỗi năm giữa hai cột ngày cho mỗi trình cài đặt không?

Tôi đang cố đếm xem có bao nhiêu, chẳng hạn như "cài đặt", xảy ra mỗi tuần giữa các cột ngày bắt đầu và ngày kết thúc.
Có nhiều hàng có ngày bắt đầu và ngày kết thúc trùng nhau và tôi đang cố gắng chia nhỏ hàng đó theo số lượng trùng nhau trong mỗi tuần.
Cột B & C là nơi bắt đầu và kết thúc quá trình cài đặt. E và F chỉ là một phần trong mô hình của tôi.
Ví dụ: ai đó có thể có 44 lượt cài đặt mỗi năm, nhưng có bao nhiêu lượt cài đặt xảy ra mỗi tuần vào cùng một thời điểm.
Tôi đang cố hiển thị số lượt cài đặt xảy ra/chồng chéo ở bên phải cột E và F qua cột G.

Xem tab Lưới SE [DEB]. Tôi khá chắc chắn rằng các con số là chính xác, nhưng bạn có thể kiểm tra lại.
Liên kết tới bảng tính với tính toán thủ công. https. // tài liệu. Google. com/spreadsheets/d/1UGQxHzjHi4UWMcT_4shbLt45n5KW2jzAjUe5Evz7JRg/edit?usp=sharing
Tôi nghĩ rằng liên kết bảng tính bên dưới đã gần đúng, nhưng tôi thấy một số khác biệt. Liên kết tới bảng tính với các công thức đã thử bên dưới. https. // tài liệu. Google. com/spreadsheets/d/1krnLiVUTfXWIWh0PTVXqK9Zpy5lNegYHoUWGMTruI88/edit?usp=sharing
Dưới đây là một số công thức tôi đã thử.
1. =SUMIFS[$H$3. $H$44,$G$3. $G$44, >=K3&]+SUMIFS[$H$3. $H$44,$G$3. $G$44, "&K2,$A$2. $A$217,$H$2. $H$217,"=K3"},0]]*ISNUMBER[MATCH[$H$3. $H$44, {"=K4],--[$G$3. $G$44"&WEEKNUM[N3],$L$3. $L$44,"="&D1,F5. F18,"

Trả lời

RR1 nói.
11 tháng 4 năm 2018 lúc 1. 07 giờ sáng

xin chào, ai đó có thể giúp tôi không, tôi cần trợ giúp ở cột trong đó nó sẽ ghi "sẵn sàng" nếu trong vòng một năm kể từ ngày hôm nay và cột kia sẽ ghi "đang xây dựng" nếu nó vẫn còn hơn một năm kể từ ngày hôm nay

DỰ ÁN CHO ĐẾN NAY SẴN SÀNG/ĐANG XÂY DỰNG
SA Ngày 31 tháng 12 năm 2012 Ngày 11 tháng 4 năm 2018
SB Ngày 30 tháng 6 năm 2013 Ngày 11 tháng 4 năm 2018

Chủ Đề