一意のExcel日付クエリ/式


1

隣接する列の日付が入力された後、列に日付を事前入力することは可能ですか?

ここに私が任されたものがあります:

日付が月の6日前(<=)(例:01/01/2019)の場合、事前に入力される日付は翌月の21日(+1月)(例:21/02/2019)

日付が月の6日(たとえば、2019年1月7日)より後(>)の場合、事前に入力される日付は、21日+2か月(たとえば、21/03/2019)になります。

事前入力は常に月の21日目から開始されます。

これに関するヘルプは大歓迎です

どうもありがとう

RT

回答:


4

日付関数を使用すると、これは非常に簡単です。

ここに画像の説明を入力してください

私は米国にいるので、日付はMM / DD / YYYYです。12月の日付を追加したので、月が12を超えた場合にExcelが年をインテリジェントに処理する方法を確認できます。B1の式:

=DATE(YEAR(A1),MONTH(A1)+IF(DAY(A1)>6,2,1),21)

DATE()を使用すると、年、月、日を入力して日付を指定できます。目標日は常に月の21日です。この年は、ソース日付の年とみなされます。すべてのアクションは月の指定で発生します。ソースの日付の月から始め、ソースの日付が6より大きいかどうかに基づいて1か月または2か月を追加します。


私よりもエレガント。
マークフィッツジェラルド

@MarkFitzgerald、偉大な心は同様に考える。:-)私たちの式はほとんど同じであり、私たちは両方同時に答えを書いていたようです。
fixer1234

1

日付がセルA1にあった場合、行1の他のセルのこの数式は機能します。

=IF(DAY(A1)>6,DATE(YEAR(A1),MONTH(A1)+2,21),DATE(YEAR(A1),MONTH(A1)+1,21))

必要に応じてコピーダウンします。


1

何が起こっているかを読んで理解するために、IF関数をより明確にしたいのですが、代わりに次のものを使用できます。

=DATE(YEAR(A1),MONTH(A1)+1+(DAY(A1)>6),21)

(DAY(A1)>6)TRUEまたはFALSEを返します。これが算術演算(この場合は加算)を介して送信されると、TRUEの場合は1に、FALSEの場合は0に変換されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.