[[20150730023029]] 『論理式で、日付と文字列を分岐させた日付表示につ』(ピグレット) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『論理式で、日付と文字列を分岐させた日付表示について』(ピグレット)

B列、D列、F列に、日付か文字列が入っています。
日付の場合は日付を、文字列の場合は文字列をA列に表示させたいです。

    A列    B列   C列    D列    E列    F列
1行  りんご  りんご
2行  1月4日             1月4日
3行                         
4行  5月5日                          5月5日 

以前こちらでご教示頂きました日付表示の方法として、
シリアル値はMAX関数で、ユーザー設定で m"月"d"日";; で表示にならい、
下記の式をA列に作成してみたのですが、

=IF(OR(B1<>"",D1<>"",F1<>""),B1&D1&F1,MAX(B1,D1,F1))

この式だと、文字列は問題なく表示されますが、
日付が「1月4日」ではなく、シリアル値42008のままで表示されてしまいます。
ひとつの式の中で、文字列と数字を扱っているのがいけないのでしょうか?

< 使用 Excel:Excel2007、使用 OS:Windows7 >


 まず、日付が表示されているどこかのセルの書式をコピーして、A1セルに貼り付ける。
 次にA1セルに下式を入力後、下方へコピーする。

 A1セル =IF(MAX(B1,D1,F1),MAX(B1,D1,F1),B1&D1&F1)

 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
 >=IF(OR(B1<>"",D1<>"",F1<>""),B1&D1&F1,MAX(B1,D1,F1)) 
 >この式だと、文字列は問題なく表示されますが、 
 > 日付が「1月4日」ではなく、シリアル値42008のままで表示されてしまいます。 
 >ひとつの式の中で、文字列と数字を扱っているのがいけないのでしょうか?

 その数式は、何かが入力されていたら、
 全て(シリアル値でも)文字として処理する数式です。
 なので、日付になり得ないです。

 何も入力されていなければ、MAX関数(シリアル値となるもの)が生きますけど、
 何もないので結果はゼロ(0、1月0日)にしかならないです。
 それは望むものではないハズ。

(半平太) 2015/07/30(木) 07:34

================================
半平太さん

MAX関数が生きているけど、シリアル値が私の式では文字扱いなんですね。
お陰さまでスッキリ解決できました。ありがとうございます。

(ピグレット)


 前回は日付が2ヶ所に入ることもある、ということだったけど、
 今回は3つのセルの、どれか1つにしか入力しないということ?

 だとして

 A1 =IFERROR((B1&D1&F1)*1,B1&D1&F1)  表示形式「日付」
 
 > 日付の場合は日付を
 
「7月31日」のような表示にさえなれば文字列でもいいのなら

 A1 =TEXT(B1&D1&F1,"m月d日")  表示形式「標準」

 ただし「*1」とかすると数値化してしまう文字列がある場合はどちらもノーグッド。
 例えば文字列の「7-31」のような。

 参考まで。
(笑) 2015/07/31(金) 20:53

笑さんへ

気にかけて頂いてありがとうございます。
実際には日付や文字列が入る可能性のあるセルは複数あり、
if節で分岐し、笑さんに教えて頂いた表示形式とMAX関数で対処していたのですが、
式が長く複雑になりすぎたので、汎用性のあるシンプルなものに作り変えました。
(エラー値が出たものは、逆に入力ミスだとわかるのもアリかなと考えて)
そういった意味で、笑さんに今回新たにご教示頂いた参考式も私の希望する式でした(^^)
(日付の計算をするわけではないので、文字列でOK)
解決済みの問いにまでフォローして頂いていることに、本当に感謝です。

ちなみに質問が前後して申し訳ないのですが、前回教えて頂いた表示形式「m"月"d"日";;」の「;;」の部分は何を表すのでしょうか?
前回教えて頂いて、結果はばちっり表示されたものの、後で「;;」について調べてみたんですが、ヒットしなかったのでずっと気になっていました。

(ピグレット) 2015/08/03(月) 01:56


http://homepage3.nifty.com/gakuyu/excel/userdefined_ex.html#3

 ここの (3)表示形式の構造 あたりが参考になりますか?

(β) 2015/08/03(月) 06:28


βさんへ

参考ありがとうございます。
「;;」の部分は、負の数の書式と、ゼロの書式のセクションを省略という意味なんですね。
自分でも表示設定の同じサイトを見てはいたのですが、;;をセクションの省略というところまでは見落としていました。慣れてないので難しく感じますが、表示形式の構造を理解すれば、すごく便利そうですね。勉強します。

(ピグレット) 2015/08/03(月) 10:06


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.