アプリ版:「スタンプのみでお礼する」機能のリリースについて

タイトルの件、質問いたします。

下記の関数をご覧ください

=TEXT(A1,"aaaa")

A1に、日付が入力されていると、その曜日を返します
例A1⇒2013.1.31 B2に木曜日

しかし、A1に何も入力されていないと、土曜日と表示されます

なぜでしょうか?

やりたい事は、何も表示されていない場合は、B2セル【関数が入っているセル】にも
何も表示されないようにしたいです

以上、ご存知の方、いらっしゃいましたら、宜しくお願いします。

A 回答 (3件)

Excelにおける日付の実体というのは、1900年1月1日を「1」とした、日付単位の数値(シリアル値)なんです。



「2013.1.1」というセルの、表示書式を「日付(またはユーザー定義)」から「標準」に変更すると、「41305」というシリアル値になります。

で、何もないセルというのは、ゼロと解釈され、すなわち「1900年1月0日」の曜日を表示することになるというわけなのです。

ちなみに、Excelのオプションに「1904年から計算する」と言うものがあります。

これは、このシリアル値による計算に影響し、「1904年1月1日からの経過日数」を用いて計算するようになります。
この状態で空白セル(0)の曜日を表示すると、今度は「金曜日」となります。

---- ということで ----

方法1. 何も入っていないことを判断して、明示的に空白表示します。

→「=IF(A1<>"", TEXT(A1,"aaaa"), "")」


方法2. 書式設定には、セミコロンで区切ってマイナスの場合・ゼロの場合に使用する書式というのを指定できます。

→「=TEXT(A1,"aaaa;;")」

「何も指定しない」という指定がわかりにくいと思いますが、

「=TEXT(A1,"aaaa;<マイナス>;<ゼロ>")」

というやつの、"<マイナス>" "<ゼロ>" 部分を ""(何もない文字列)にしたものです。
    • good
    • 0

空白セルを数式で参照すると、ゼロが返されますので、シリアル値ゼロの日の曜日が表示されているのだと思います。


if関数を組み合わせて、ゼロの場合は空白を返すようにすればよいと思います。
    • good
    • 0

「Excel 基準日」で検索するといろいろと出てきます。


ざっと読んだ感じ、Excelの日付計算ではシリアル値と言うものを使用しています。
そして、シリアル値が1の場合に1900/1/1となります。(Windowsの場合です)
そして、Excelでは1900/1/1が日曜となるらしいです。(実際には日曜ではないらしいですが・・・)

空欄にした場合に土曜と表示されるということですが、空欄の場合シリアル値を0と判断しているのではないでしょうか。
空欄の場合にB2にも何も表示させないのであれば、IF文で場合わけするとかでしょうか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています