日付を指定して、Excelのセルに曜日( "月曜日"など)を表示する方法を教えてください。
簡単な例:
A1セル:1/8/2009
B1セル:= TEXT(今週(A1)、 "dddd")
これは、指定された日に対応する日を印刷します。
これはあなたが望んだことですか?
Excelは1900年1月1日が日曜日*であると考えており、デフォルトでExcelがWeekday関数の週の最初の日として日曜日を使用しているため、上記の回答はflukeによってのみ機能します。
その方法で実際に計算しているのは、曜日を数字として表し、それを日付として解釈される数字に基づいて日にちとしてフォーマットすることです。たとえば、日付が2003年1月2日で、WEEKDAY関数を使用している場合、これは7(=土曜日)になります。これを "dddd"としてフォーマットすると、実際にはExcelの "Epoch"から7日目の曜日名、つまり7/1/1900が土曜日*になります。 1/1/1904は日曜日ではなく金曜日であるため、1904年ベースの日付システムを使用するオプションが選択されているユーザーがこの式を開くと、この式は破綻します。 (はい、私は誰もそれを使用していないことを知っていますが、あなたはそれに依存するソリューションを構築したくありませんか?)
次のようにして、式をより短く、より速く、より堅牢にすることができます。
=TEXT(A1,"dddd")
もちろん、実際に別の列に配置する必要があるかどうかに応じて、日付セル自体を既に提案されているカスタム形式でフォーマットすることもできます。私はよくこのような日付フォーマットを使います
ddd dd mmm yyyy
eg2003年2月1日土曜日を指定すると、日付は明示的になりますが、平日の名前も表示されます。
2桁目とTEXT関数を使用することは、通貨のように平日を差し込み印刷のどこかで明示的に使用したい場合(たとえば)に重要です。Excel> Wordの差し込みでは、onではなく実際の格納値スクリーンフォーマットのバージョンなので、セルのフォーマットに関係なく、Wordは恐ろしい数字を見ます。実際のテキストフィールドは「そのまま」渡され、Wordで正しく表示されます。
*実際には月曜日ですが、ExcelはLotus 1-2-3の誤った日付と一致するように書かれています。
その後の日付の処理に応じて、セルの形式をCustomに設定することもできます。dddd
ネストしたIF
ステートメントは面倒ですが、うまくいきます。あなたが少しタイピングを節約したいのであれば、あなたはこれを試すことができます:
=CHOOSE(WEEKDAY(A2), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")
フルネームが必要な場合は、
=CHOOSE(WEEKDAY(A2), "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
この例では、 "A2"は、問題の日付を含むセル(または数式)に関係なく使用できます。例えば:
=CHOOSE(WEEKDAY(TODAY()), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")
今日が何であれ、3文字の略語を表示します。
フォーマットの前に[$ nnn]を使用して回答をローカライズすることもできます(したがって、カスタムコードは[$ nnn] dddd; @です)。適切な言語コードでnnnを変更してください。私はリストを持っていませんが、どういうわけか、英語のコードは-409です(そして私のローカルは-421です)。
私はあなたが数字フォーマットを試すことができ、言語フィールドを変更し、そしてそれをカスタムフォーマットに戻すことができると思います。
A1セル:2009年1月8日B1セル:= A1次にCtrl + 1(セルのフォーマット)を押して番号タブを選択し、カスタムをクリックしてからタイプtxtboxに「DDDD」と入力します。
現在の日付を表示します
=TEXT(WEEKDAY(MONTH(TODAY())),"dddd")
現在の日付を必須の必須テキストと共に表示します。
=CHOOSE(WEEKDAY(MONTH(TODAY())), "S-U-N-D-A-Y","M-O-N-D-A-Y","T-U-E-S-D-A-Y","W-E-D-N-E-S-D-A-Y","T-H-R-S-D-A-Y","F-R-I-D-A-Y","S-A-T-U-R-D-A-Y")
セルのフォーマット - 日付 - カレンダータイプ(グレゴリオ暦英語を選択) - タイプ(セクションには、2001年3月14日水曜日に必要なフォーマットがあります)
WEEKDAY関数はVbaコードで使用できます。例えば :
Label1.Caption = WeekdayName(Weekday(TextBox1, 0), False, 0)
上記の例では、曜日名はTextBox1から取得されています。結果は "月曜日"です。
右クリックメニューでアクティブセルへの日付入力に関するユーザフォームを作成したときに使用しました。