過去の桐井戸端BBS (桐ver.7)
1113 日付の持ち方&表示の仕方? 田中@福岡 1999/1/20-15:20
桐V7.1(体験版)と格闘中です。
桐の日付の持ち方ですが、
[ツール]-[環境設定]の日時型は
数値表示 詰めなし 表示形式 1999/1/20 表示範囲 日まで としています。

実際日付項目は、表編集画面ではそのように見えております。

ところが一覧表印刷を行うと、「1997年 1月20日」になってしまいます。
さらに、書き出し(CSV)を行い、EXCELで読み込むと
「1999年 1月20日」の文字列になります。
#但し、1998/12/31のようにyyyy/mm/ddに空白がなければOKです。

試しに書き出し(K3)を行って中身を覗いてみましたら、
日付項目は「1999年01月20日00時00分00秒」となっておりました。

桐の表編集画面、印刷、書き出しなど各場面共通で1999/1/20形式を
維持するにはどうすれば良いのでしょう?
1114 Re: ikjun 1999/1/20-17:45
記事番号1113へのコメント
 日時型という概念がV4、V5にありませんので、ちょっととまどうところですね。

>さて桐の日付の持ち方ですが、
>[ツール]-[環境設定]の日時型は
>数値表示 詰めなし 表示形式 1999/1/20 表示範囲 日まで としています。

 これはあくまでも表示形式だということに注意して下さい。

 基本的に日時型のデータというのは、「1999年01月20日00時00分00秒」と
いうような内容のデータを持っています。
問題はそれをどう印刷する、表示するかということです。
1999/1/20形式というのは表示形式の一つにすぎません。
表示形式で1999/1/20形式にしたからといって、時間、分、秒とかの値は消えているわけではありません。

 これは小数点以下の数字を見えなくしても、計算は小数点以下を計算するというのとちょっと似てますね。

>実際日付項目は、表編集画面ではそのように見えております。
>
>ところが一覧表印刷を行うと、「1997年 1月20日」になってしまいます。

 これはレポートを使うべきでしょう。
もともと一覧表というのはあまり形式にとらわれないときに使うものですから、細かい書式を設定するためにはレポートを作る必要があります。

>さらに、書き出し(CSV)を行い、EXCELで読み込むと
>「1999年 1月20日」の文字列になります。
>#但し、1998/12/31のようにyyyy/mm/ddに空白がなければOKです。

 そうであれば、空白がなくなるように関数を組み合わせればOKでしょう。

>試しに書き出し(K3)を行って中身を覗いてみましたら、
>日付項目は「1999年01月20日00時00分00秒」となっておりました。

 つまり、日時型は基本的に秒単位までデータを持っているのです。 
 ですから、もしどうしても1999/1/20形式で書き出ししたいなら1999/1/20形式の文字列に計算式で変換する必要があるでしょう。

>桐の表編集画面、印刷、書き出しなど各場面共通で1999/1/20形式を
>維持するにはどうすれば良いのでしょう?

 それぞれに対応する必要があると思います。
自動的に全部この形式というのは無理だと思われます。

>どうかご教授ください。

 なぜ、日時型を使う必要があるかということですが、
日時型であれば、1999年2月29日などのようなありえない日付をあらかじめ排除できる。
日数計算などが非常に楽などの特徴があります。
日数計算をやったことのある人ならこれのありがたさは身にしみるはずです。

 うまく言えないのですが、要は根本的に考え方が違うのではないでしょうか?

 あえてやるとすれば、日付型を使わず、数値を使うか、文字列を使うかですが、それではせっかくの日付型の良さを生かせません。

 考え方として、日付型というのは、それ自体は保存と計算の方法で、表示するときや、印刷、
書き出しをするときは別の形に変換するという気持ちで考えた方がわかりやすいと思います。

 普段はそんなこと考える必要はありませんが、日付型がらみで考えが詰まったときは、結構役に立つ考え方でしょう。

 あまり役に立たないコメントでした。
1115 Re: tuji 1999/1/20-21:35
記事番号1113へのコメント
>ところが一覧表印刷を行うと、「1997年 1月20日」になってしまいます。

一覧表印刷の属性の設定画面で書式→列属性→列属性で、一番右にある表示形式を
クリックすれば印刷時の表示形式が設定できます。
1119 Re: ikjun 1999/1/21-10:39
記事番号1114へのコメント

> これはレポートを使うべきでしょう。もともと一覧表というのはあまり形式
>にとらわれないときに使うものですから、細かい書式を設定するためにはレポ
>ートを作る必要があります。

 また間違ったコメントをしてしまった。すぐにレポートを作ってしまうので、
一覧表印刷などほとんど使わないのに、わかったようなことをいってしまった。
反省!!!!

 それで、名誉挽回というわけではないのですが、私自身が日付の印刷で困ったことを報告します。

年無しの月日だけ印刷する必要がでたとき、つまり"1/21"というような印刷をしたいときがありました。
一見なんてことはなさそうですが、表示形式を工夫しても、"1999/1/21"となるだけで、"1/21"にはなりません。(わたしが知らないだけ?)

 そこで、月日という文字列の項目を増やして、そこに
 #文字列(#月( [年月日] ))+"/"+#文字列(#日([年月日]))

 という計算式をいれました。

 これを印刷するようにすると、思った通りの印刷が出来ました。
思いつけば別に簡単なことなのですが、表示形式にこだわっていると、思いつかないような気がします。

 このやり方なら、基本的にどんな形式でも可能なので、頭の隅っこのどこかにいれとくといいのではないでしょうか?
1120 書き出しも解決 田中@福岡 1999/1/21-16:03
記事番号1116へのコメント
ありがとうございます。一覧表&書き出し共に解決しました。

一覧表
>一覧表印刷の属性の設定画面で書式→列属性→列属性で、
>一番右にある表示形式をクリックすれば印刷時の表示形式が設定できます。
一発で解決。ありがとうございます。

書き出し(CSV)
日付項目の表示条件 詰めなし YYYY/MM/DD(hh:mm:ss)になっていたはずで何故か書き出し結果は 1999年1月20日(1が全角なので×?)。
試しに「空白詰め YYYY/MM/DD(hh:mm:ss)」に変更すると、書き出し結果は1999/ 1/20(空白が全角!)となり、EXCELでもOKとなりました。

なんだか釈然としない部分も残りますが、ご報告まで。
1121 Re:日付の持ち方&表示の仕方? 田中@福岡 1999/1/21-16:11
記事番号1119へのコメント
> そこで、月日という文字列の項目を増やして、そこに
> #文字列(#月( [年月日] ))+"/"+#文字列(#日([年月日]))
> という計算式をいれました。

年月の場合は同様に
#文字列(#年( [年月日] ))+"/"+#文字列(#月([年月日]))
で良いわけですね。

> このやり方なら、基本的にどんな形式でも可能なので、頭の隅っこのどこかに
>いれとくといいのではないでしょうか?

参考になります。

#表示条件に「月まで」とかもあれば良いのだけれども..
1122 Re: ikjun 1999/1/22-10:11
記事番号1121へのコメント
>年月の場合は同様に
>#文字列(#年( [年月日] ))+"/"+#文字列(#月([年月日]))
>で良いわけですね。

 そうです。ただこの場合は表示形式の変更で対応できますから、必要ないでしょうが?

 例えば、4月で新しい年度になるような場合は、

#文字列(#年([年月日])+#条件選択(#月([年月日])>=4,0,1,-1))+"年度"+#文字列(#月([年月日]))+"月"

 こういった式も使えるかもしれません。

>#表示条件に「月まで」とかもあれば良いのだけれども..

 まあ、そうなんだけど、私は代替え処置がある場合は、機能を増やしてほしくないという立場です。

 上のような年度で処理しなければならない場合はよくあります。
それに日付は西暦と和暦だけしか無いわけでもない。
もしかしたら、イスラム圏と取引のある貿易商社にとってはイスラム歴は必需品かも知れない。

 仮にそんなこと全部応えていってら大変でしょう。
要望に応えて重くなったり、操作がわかりずらくなったりするのはよくあることです。

 桐は基本的にシンプルで、応用性の高いソフトであってほしいと思っています。
(これって一番難しいことだろうけれど?)

 応用でなんとかなることは、応用例を示して、どうにもならない部分を機能追加してほしいですね。
100人に一人使うかどうかの機能のために、全体のパフォーマンスを下げるなんて、
ことはしないでほしい。(今回のことではありません。誤解の無いように!)

 それより、安定性を増したり、スピードを改善したりと、基本性能の改善するのと、アクセスなどにくらべて、柔軟性に欠けると思われる入力画面の設定を改善してほしいと思います。

 これは、どんなに一括処理や関数を工夫しても、どうにもならない場合が多いですから・・・・

戻る