web-dev-qa-db-ja.com

Excel TEXT数式は「yyyy」を年に変換しません

Excel 2013でテキストと日付を組み合わせたいのですが。

30-10-2014のような日付のセルA2があるとします。次の式でテキストの後に日付を追加しようとしました:_="Some text and a date: "&A2_

ただし、出力には日付が数値として表示されます:一部のテキストと日付:41942

TEXT 式で試してみました:="Some text and a date: "&TEXT(A2;"dd-mm-yyyy")

しかし、これは一部のテキストと日付:30-10-yyyyを示し、一部のテキストと日付:30-10-2014

または、TEXT式がどのように機能するか理解していない、またはバグ/問題がここにありますか?

[〜#〜] update [〜#〜]:オランダ語版のWindows(7)が英語版であることが重要なようですこの問題の原因となるExcel(2013)の!

11
Kapé

すべての賞賛は@AxelRichterに行きます、Axelに感謝します!

オランダ語版のWindowsで英語版のExcel(2013)を使用している場合、数式が混同されるようです。たとえば、TEXT(オランダ語ではTEKST)のような英語の式名はまだありますが、式ではコンマの代わりにコロンを使用する必要があります。 TEXTの-​​format_text値は、年によって異なるオランダ語形式を期待しています(yyyyではなく、jjjj)。

したがって、オランダ語版のWindowsと英語版のExcelを使用している場合、一部のテキストとそれに続くフォーマットされた日付の正しい式は次のようになります。

="Some text and a date: "&TEXT(A2;"dd-mm-jjjj")

マイクロソフトがこれを修正してくれることを願っています。これは非常に迷惑です!

21
Kapé

私たちの仕事でも同じ問題があり、ウィンドウのローカライズに影響を与えられない場合は、次のような式を使用しています。

="Some text and a date: "&TEXT(A2;"dd-mm-")&YEAR(A2)

「dd」と「mm」が同じなのはおかしいです。

2
David

ここのExcelは明らかに失敗します。 TEXTは言語に依存しないものである必要があります。

私が見つけた回避策、特にフォーマットするセルが複数ある場合:

  1. 非表示のセルまたは白色で目的の日付形式を計算します。

=IF(TYPE(VALUE(TEXT(DATE_CELL;"YY")))=1;"DD.MM.YYYY";"ДД.ММ.ГГГГ")

必要に応じて、次のような複数のリージョンをサポートするように拡張できます。

=IF(TYPE(VALUE(TEXT(DATE_CELL;"YY")))=1;"DD.MM.YYYY";IF(TYPE(VALUE(TEXT(DATE_CELL;"ГГ")))=1;"ДД.ММ.ГГГГ";"DD.MM.JJJJ"))

  1. 日付が必要なセルでは、前のセルを2番目のパラメーターとして使用します。

="Date: " & TEXT(DATE_CELL; FORMAT_CELL)

1
Marcodor

システムまたはキーボードがデンマーク語のときの同じ問題については、jjjjの代わりにååååを使用してください。私もこの鍵を見つけるのに苦労しました。ただし、オランダ語またはデンマーク語以外で同じ問題に直面している人がいる場合は、正しいキーを確認できます。それを見つけるには、任意のセルを右クリックして[セルの書式設定]に移動し、[カスタム]を選択して、ローカル言語で日付関連の書式を見つけます。そこでは、ローカル言語のDATE形式に使用するのに適切なキーを見つけることができます。

1
Bhushan Mahajan

「yyyy」の代わりに「e」を使用できるようになりました。 eはyyyy aのユニバーサルバージョンです。

0
PALU

この問題はExcel 2016(または、可能であればOffice 365)にも残っています。 Windowsの異なる言語設定が原因です。これは、年の記号が異なる言語で発生します(オランダ語は「jjjj」、ポルトガル語は「aaaa」)。この問題が発生している場合は、ローカルのWindows言語の年の形式を使用してみてください。

0

解決策:「jjjj」形式が機能しているかどうかを確認するには:

特定の形式で表示したい日付がA1である

セルA2で、次の式を使用して、特定の形式で表示する日付のセルをセルにリンクします。

=TEXT(A1;"dd/mm/jjjj")

3番目のセルでは、次の式を配置します。

=IF(RIGHT(A2;4)="jjjj";TEXT(A1;"yyyy");TEXT(A1;"jjjj"))

右から4桁が「jjjj」の場合、この式は「yyyy」としてフォーマットされた日付を表示します。それ以外の場合は、「jjjj」のフォーマットが使用されます。

0
Jasper Verkuil