web-dev-qa-db-ja.com

Excel(または数値)で、2つの日付にわたる特定の月の日数を計算できる数式

ゲストが8月24日に到着し、9月4日に出発した場合、8月に何泊、9月に何泊を計算するかを計算する式は何ですか。

4
tom

以下は、含まれる月数に関係なく、月の夜数で分割する表です。
enter image description here

最初の行に月の名前だけが表示されている場合でも、実際には日付であることに注意してください。月の名前のみを表示するようにフォーマットされた月の最初の日( "mmmm")

表の式は次のとおりです。
=NOT(OR(D$1>$B2,EOMONTH(D$1,0)<$A2))*(MIN(EOMONTH(D$1,0)+1,$B2)-MAX(D$1,$A2))

  • NOT(OR(D$1>$B2,EOMONTH(D$1,0)<$A2))は、現在の滞在と月が重複するかどうかを決定します
  • MIN(EOMONTH(D$1,0)+1,$B2)-MAX(D$1,$A2)は滞在期間です

ホテルで見つけたとおりに計算が行われます。夜は前日までカウントされ(4行目は8月の1泊)、1日滞在は夜としてカウントされません(5行目を参照)。

3
Máté Juhász

到着日がA1にあり、チェックアウト日がB1にあるとすると、C1に次のように入力する必要があります。

=IF(EOMONTH(A1,0)<B1,CONCATENATE((EOMONTH(A1,0)-A1)," and ",B1-A1-(EOMONTH(A1,0)-A1)-1),B1-A1)

説明:

IF ( 
    EOMONTH(A1,0)<B1 //If last day of month of arrival is before the checkout date then
        CONCATENATE( //concatenate days of first month "and" days of next month
                     (EOMONTH(A1,0)-A1),
                     " and ",
                     B1-A1-(EOMONTH(A1,0)-A1)-1
                    )
        B1-A1 //Else, simply substract checkout date from arrival date. 
3
jcbermu