web-dev-qa-db-ja.com

一部の日付は日付として認識され、一部の日付は認識されません。どうして?

日付のリストは次のとおりです。

04-22-11
12-19-11
11-04-11
12-08-11
09-27-11
09-27-11
04-01-11

このリストをExcelでコピーすると、次の方法で日付の一部として認識されるものとそうでないものがあります。

04-22-11
12-19-11
11-04-11(日付)
12-08-11(日付)
09-27-11
09-27-11
04-01-11(日付)

誰が理由を知っていますか?そして、Excelにすべてのリスト項目を日付として認識させるにはどうすればよいですか?

どうもありがとう!

22
J. Lee

そんなに難しくない...

このフォーラムの投稿をご覧ください:

http://www.pcreview.co.uk/forums/Excel-not-recognizing-dates-dates-t3139469.html

要するにステップ:

  1. 「日付」の列のみを選択します
  2. [データ]> [テキストから列へ]をクリックします
  3. 次へをクリックします
  4. 次へをクリックします
  5. ウィザードのステップ3で、Colデータ形式の下の「日付」をチェックし、ドロップリストから「DMY」を選択します。
  6. 完了をクリックします
34
Watki02

これは、コンピューターの地域設定が原因です。

データをExcelに貼り付けるとき、それは文字列の集まりです(日付ではありません)。

Excelには、現在のデータ形式だけでなく、いくつかの同様の日付形式または日付であると想定できる明白な日付形式を認識するためのロジックが組み込まれています。貼り付けられたデータを有効な日付に一致させることができる場合、そのセル内の日付としてフォーマットされます。

具体的な例は、日付のリストが米国形式である「m/d/yy」としてフォーマットされているためです。地域設定が「米国英語」に設定されているため(カナダ人であっても)、Excelに正しく貼り付けられます。

システムがカナダ英語/フランス語形式に設定されている場合、「d/m/yy」形式が想定され、月が13を超える日付は認識されません。

日付を含むデータをExcelにインポートする最良の方法は、この形式でデータをコピーすることです。

2011-04-22
2011-12-19
2011-11-04
2011-12-08
2011-09-27
2011-09-27
2011-04-01

これは「yyyy-MM-dd」です。この形式は、これまでに見たすべてのコンピューターで同じように認識されます(ODBC形式または標準形式)と呼ばれます)。最大から最小の重み( "yyyy-MM-dd HH:mm:ss.fff")のもう1つの副作用は、文字列として正しくソートされることです。

地域の設定を行ったり来たりするのを避けるために、Excelでマクロを作成してデータを貼り付けることを検討することができます。

6
DarrenMB

あなたの場合、おそらくMM-DD-YYではなくDD-MM-YY形式でそれらを取っています。

5
padis

これを修正する最も簡単で簡単な方法は、日付セパレーターで同じセパレーターで検索と置換を行うことです。たとえば、この場合、「-」を検索して「-」に置き換えます。これがなぜ機能するのかはわかりませんが、これを実行すると、すべての日付が右揃えになります。

2
Michael

以下は、mm/dd/yyyy形式でうまくいったものです。

=DATE(VALUE(RIGHT(A1,4)),VALUE(LEFT(A1,2)),VALUE(MID(A1,4,2)))

数式を含むセルを日付形式に変換し、数式を下にドラッグします。

1
Vasi

ここに私のために働いたものがあります。すべての日付を含む列を強調表示しました。 [データ]タブで、[列へのテキスト]を選択し、[区切り記号]ボックスを選択し、次にヒットして終了します。何も変わっていないように見えましたが、Excelは列を日付として読み取り、日付で並べ替えることができました。

1
Greg

最も簡単な解決策は、最初にdate()left()、およびmid()を使用してyy、mm、ddをright()式に抽出することです。この場合、入力日付がA1にあると仮定します。

_=date(right(A1,2)+100,left(A1,2),mid(A1,4,2))
_

上記の説明:

=right(A1,2)は、セルの最後の2桁(yy)を取得します。デフォルトでは2011年ではなく1911年であるため、100を追加します(ユーザーでそれを行わない場合は+100を省略)

=left(A1,2)は、セルの最初の2桁(mm)を取得します。

=mid(A1,4,2)は、セルの中央で4桁目(dd)から始まる2桁を取得します。

これが最初に起こる理由:

カナダの銀行データをExcelにインポートすると、この問題に常に遭遇します。つまり、入力日付の形式が地域の設定と一致しません。

あなたの設定は、Excelが日付入力をDD-MM-YYまたはYY-MM-DDのいずれかとして必要としているようですが、入力データはMM-DD-YYとしてフォーマットされています。

したがって、Excelはあなたの日を月と見なし、その逆も同様です。つまり、12日未満の日付は日付として認識されますが、間違った日付(月と日が逆になる)と12日を超える日付は認識されません。 Excelはその日を13日以上の月と見なすため、まったく日付として。

残念ながら、Excelは既にそれらの日/月の割り当てを所定の場所にロックしているため、書式設定を変更することはできません。ExcelTHINKSとは何かを視覚的に移動し、視覚的に再割り当てすることはできません。

率直に言って、Excelには日付反転ツールがないのは驚きです。これは常に起こると思うからです。しかし、上記の式は非常に単純です。

注:日付に先行ゼロがない場合(つまり、4/8/11対04/08/12)、日付に応じて異なる桁数を抽出する必要があるため(つまり、4/9/11対4)/10/11)。その後、数式にif文をいくつか作成する必要があります。キモい。

0
Shawn Taylor

列ヘッダーを右クリックして、[セルの書式設定]、[選択した日付]の順に選択し、目的の日付形式を選択します。認識されないものはあいまいであり、列として書式設定を適用した後に解決されるものとして解釈されます。私にとって、Excel 2002 SP3では、上記の日付は貼り付け時に自動的かつ正しく日付として解釈されることに注意してください。

0
Benjamin

この問題の回避策は、地域設定を一時的に変更することであるため、CSVインポートされたファイルの日付形式は地域設定のものと「一致」します。

Open Officeはその問題に対して同様の方法で動作するようです。以下を参照してください。 http://www.oooforum.org/forum/viewtopic.phtml?t=85898

0
Frosty Z

Excelでオーストラリアの日付形式に変換しようとしたときに、この問題に遭遇しました。区切り文字でセルを分割し、分割セルから次のコードを使用して、問題領域を変更しました。

=date(dd,mm,yy)
0
bharath