Excel 2010でカスタムデータ形式からグラフを作成する


0

私はApache POIを介してカスタムデータフォーマットを定義しています。私は次のような構成を使う必要があることを知っています:

DataFormat data = this.workbook.createDataFormat();
cellStyle.setDataFormat(data.getFormat("YY:DDD:HH:MM:SS"));

Apache POIのドキュメントに次のような参照がありました。 フォーマット

フォーマットする必要があるデータは日付と時刻を表します。

00:000:00:15:00 
YY:DDD:HH:MM:SS

これまでのところそれは大丈夫です。 Excelのセルを右クリックし、セルの形式を確認します - >カスタム yy:ddd:hh:mm:ss 。しかし、私はこのカスタム時間フォーマットからチャートを作ることはできません。このデータを選択する:

task   | time
-------|----------------
task 1 | 00:000:00:15:00
task 2 | 00:000:00:20:00
task 3 | 00:000:00:10:00

そして、オプションの挿入横棒グラフを選択すると、ちょっとおかしな出力になります。追加のデータを作成せずにグラフを機能させる方法はありますか(合計秒数のカウントや秒数の値の表示など)。


これは正しくないようです - YY付きのExcelのカスタムフォーマット:DDDは次のように解決されるはずです。 12:Fr 今日、Excelがこれを年と日として解釈するからです。あなたは本当にそのフォーマットでセルに何かを書き込もうとしましたか?
Jook

回答:


1

Excelは日付と時刻をシリアル番号として扱います。この番号は1900年1月0日以降の日数であり、小数点は24時間の小数部です(詳細については、を参照してください)。 CPearsonのエクセル日付/時刻 。 Excelでは、 10/12/2012 10:20:07 = 41194.4306392361。 Excelとのやり取りを容易にするために、特定の標準形式(従来のUS MM / DD / YYYY HH:MM:SSなど)で日付/時刻を認識します。あなたが遭遇しているように思われる問題はあなたの日付フォーマット(YY:DDD:HH:MM:SS)がExcelによって日付/時刻として認識されないことです。 2つの解決策があります。

  1. 「Excelにやさしい」形式でApacheからあなたの日付をエクスポートしてください。または
  2. 数式を使用して、カスタムフォーマットをExcelの「Excelに適した」フォーマットに変換します。

#2を使用していて、カスタム日付形式のDDDが文字通り1年のうちの日である場合(たとえば、2012年10月12日が286番目の日)、それを適切な日に変換するためにVBAが必要になるでしょう。 /月の組み合わせ


私はあなたの「訂正」の原因についてはよくわかりません、しかしMSによれば、それは1900年1月に始まります。 support.microsoft.com/kb/214094
dav

あなたは本当に正しいです。 Microsoftのリソースには実際にはいくつかの優れた情報が含まれているので、それを編集して回答に含めることをお勧めします。
Doktoro Reichard
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.