Excelで列の日付を認識できない


45

Excelで日付の操作に常に問題があります。何か間違ったことをしているに違いありませんが、何を理解していないのですか。

Exchangeサーバーからエクスポートされたスプレッドシートがあり、日付のある列が含まれています。私はイギリスにいますが、彼らはアメリカ形式で出てきました。

問題の列は次のようになります

04/08/2012
04/09/2009
04/01/2010
04/21/2011
04/05/2012
08/30/2009
08/29/2010
08/28/2011

Excelでは、列を強調表示して選択しましたFormat Cells...。このダイアログボックスでは、ロケールとしてDate選択さEnglish (United States)れ、リストから一致する日付形式を選択しました。[OK]をクリックして、この列でデータを並べ替えます。

この列を選択する並べ替えダイアログで、[値の並べ替え]を選択しますが、順序はAからZのオプションのみを提供し、予想どおりに最も古いものから最新のものではありません。

これにより、日付データが最初の2桁でソートされます。

このデータをISOに再フォーマットすると、AからZの並べ替えが機能することを認識していますが、必要はありません。明らかに何かが欠けています。それは何ですか?

編集:私は賞金を台無しにしましたが、これは@ r0bertsの答えに行き、区切り文字なしのテキストの列への最初の提案とデータの種類として「MDY」を選択する必要がありました。さらに、時間がある場合(つまり04/21/2015 18:34:22)、最初に時間データを取り除く必要があります。ただし、その後、@ r0bertsによって提案されたメソッドは正常に機能します。


私は問題がExcelがこれを行う方法を知らないことだと思うでしょう-あなたはテストできます。日付形式を更新しようとする場合、列を選択して右クリックし、セルの形式を選択します(既に行っているように)が、オプション2001-03-14(リストの下部近く)を選択します。日付形式の一部のみが正しく更新され、Excelが日付ではなく文字列として処理していることを示していると思われます。
デイブ

エクスポートされたデータの形式は何ですか?CSVまたはXLSXですか?
Excellll

回答:


70

問題: Excelは、「セルの書式設定-数値-カスタム」を使用して、日付が「mm/dd/yyyy」であることを明示的に伝えようとしているにもかかわらず、日付を日付として認識したくない。あなたが知っているように; Excelが何かを日付として認識した場合、「41004」などの数値としてさらに保存しますが、指定した形式に従って日付として表示されます。混乱を招くために、Excelは2009年4月4日などの日付の一部のみを変換しますが、他の例は2009年7月28日を未変換のままにします。

解決策:ステップ1から2

1)日付列を選択します。[データ]の下の[テキストから列へ]ボタンを選択します。最初の画面でラジオボタンを " 区切られた "にして、次へをクリックします。区切りボックスのいずれかをクリックして(空白のボックス、チェックマークなし)、[ 次へ ]をクリックします。列データ形式の下で、日付を選択し、隣のコンボボックスでMDYを選択して、完了をクリックします。これで日付値が得られました(つまり、Excelは値をDateデータ型として認識しました)が、書式設定はおそらくロケールの日付であり、mm/dd/yyyy必要な日付ではありません。

2)希望米国の日付形式を取得するには、適切に、その後の下欄(選択されていない場合)を選択します最初の必要性に表示セルの書式を - 数は、選択した日付をロケール選択:英語(米国)。これにより、「m/d/yy」のような形式が得られます。次に、[カスタム]を選択すると、「mm/dd/yyyy」と入力するか、カスタム文字列のリストから選択できます。

代替案:LibreOffice Calcを使用します。Patrickの投稿からデータを貼り付けCtrl+Shift+Vたら、形式を選択して貼り付け()を選択し、書式なしテキストを選択します。これにより、[テキストのインポート]ダイアログボックスが開きます。文字セットはUnicodeのままですが、言語については英語(米国)を選択してください。[特別な番号を検出する]チェックボックスもオンにする必要があります。日付はすぐにデフォルトの米国形式で表示され、日付でソートできます。特別な米国形式MM / DD / YYYYを希望する場合は、「セルの形式」でこれを1回指定する必要があります-貼り付けの前または後に。

「セルの形式」でExcelに通知したらすぐにExcelが日付を認識すべきだったので、これ以上同意できませんでした。残念ながら、これらのテキスト文字列を日付としてExcelに認識させることができたのは、上記の手順1のみです。明らかにこれを何度も行うと首の痛みであり、ボタンを押すだけでこれを行う視覚的な基本的なルーチンをまとめることができます。

データ| テキストを列に

貼り付け後の先頭のアポストロフィの更新:数式バーで、日付が認識されないセル先頭のアポストロフィがあることがわかります。つまり、数値(または日付)としてフォーマットされたセルにはテキスト文字列があります。あなたが言うことができる-主要なアポストロフィは、スプレッドシートが番号を認識するのを防ぎます。スプレッドシートには左揃えの数字のように見えるものが表示されるだけなので、数式バーを調べる必要があります。この問題に対処するには、修正する列を選択し、メニューで選択しますData | Text to ColumnsOKをクリックします。データ型を指定できる場合もありますが、以前に列の形式を特定のデータ型に設定している場合は、必要ありません。このコマンドは、実際には区切り文字を使用してテキスト列を2つ以上に分割することを目的としていますが、この問題でも魅力のように機能します。Libreofficeでテストしましたが、Excelにも同じメニュー項目があります


私のOPであなたの両方のポイントに対処します 日付値を列に分割する(そしてISO形式に再統合する)ことはもちろん可能ですが、Excelには広範な日付関数が組み込まれているので、有効な日付データでそれらを利用できるようにしたいと思います。2番目のオプションは、私にとってうまくいかないことを説明したとおりです。
パトリック14

親愛なるパトリック、注意深く読んでください。または、Libre Office Calcを使用することができます-データを使用するとすぐに動作します-日付-英語(米国)の列を事前にフォーマットし、貼り付けたら「特殊貼り付け」「書式なしテキスト」を実行します英語(米国)。特別な番号を認識するためにボックスをチェックすることを忘れないでください。私の答えでは、Excelがこれと矛盾している(バギー)ことをできるだけ強く示唆しようとしましたが、これらの手順1と2に頼って目的の結果を達成する必要があります。
r0berts 14

あなたの質問をきちんと読んでいたはずです。最初の提案は実際に機能します。報奨金が必要だったはずです。ご協力ありがとうございます。
パトリック

提案1は魅力のように機能します。ありがとう。
アダム

本当に良い答え!!!
加算器

8

すべての列を選択し、[検索と置換]に移動して、単にに置換"/"/ます。


これが問題を解決するために何をするのか説明できますか?
fixer1234

これは本当に機能し、簡単でした。置き換えは、先行ゼロを削除するだけです
PedroGabriel

2
まず、これが機能します。最高のソリューション。チェックされたソリューションよりもはるかに良い:)。fixer1234および@PedroGabrielへ:ゼロを削除するわけではありません。セルの内容を置換する行為では、Excelは結果のセルに数式、テキスト、または数値が含まれているかどうかを評価します。"/"置換を行った後、セルに数値が含まれるように解釈され(日付は技術的にはExcelになります)、正しくソートできるようになりました。(賢いユーザーは、Excelでコンテンツを再解釈する同様のシナリオで、「=」文字で検索/置換を行う手法を認識できます。)とにかくJairには理想的なソリューションがあります:)
MicrosoftShouldBeKickedInNuts

今日、@ MicrosoftShouldBeKickedInNutsゼロについて言った理由がわからない。ゼロとはまったく関係がない。乾杯
ペドロガブリエル

3

私はExcelの日付とまったく同じ問題を抱えていました。形式はExcelの日付の要件に一致しましたが、各セルを編集しなければ日付は認識されず、数千行を処理する場合、各セルを手動で編集することは実用的ではありません。解決策は、ハイペンをハイフンに置き換えた日付の行で検索と置換を実行することです。Excelはlikeをlikeに置き換えて列を実行しますが、結果の要因は日付を認識することです!一定!


3

SAPデータベースから抽出された数千の行と、同じ日付列の2つの異なる日付形式(ほとんどが標準の「YYYY-MM-DD」ですが、約10%が「MM- DD-YYY」)。毎月650行を手動で編集することはオプションではありませんでした。

上記のオプションはどれも(ゼロ... 0 ... nil)動作しませんでした。はい、すべて試してみました。テキストファイルへのコピーまたは明示的なtxtへのエクスポートは、何らかの理由で、単に動作を拒否する10%の日付の形式に影響しませんでした。

私がそれを修正できた唯一の方法は、不正な動作をする日付列の右側に空の列を挿入し、次のかなり単純な式を使用することでした:

(不正なデータがにあると仮定Column D

=IF(MID(D2,3,1)="-",DATEVALUE(TEXT(CONCATENATE(RIGHT(D2,4),"-",LEFT(D2,5)),"YYYY-MM-DD")),DATEVALUE(TEXT(D2,"YYYY-MM-DD")))

その後、計算列を削除できるようになった後にのみ「値」を貼り付けることで、不正な動作の日付の上に新しい計算列の結果をコピーできました。


3

これは元の質問者には関係ないかもしれませんが、日付の列を並べ替えることができない他の人を助けるかもしれません。

Excelは1900年より前の日付の列を認識せず、テキストの列であると主張しました(1/1/1900には数値1があり、負の数値は明らかに許可されていないため)。だから私はすべての日付(1800年代)を1900年代に入れるために一般的な置き換えを行いました。例えば、180-> 190、181-> 191などです。最後に、他の方法、たとえば190-> 180を置き換えました。

これが他の歴史家に役立つことを願っています。


2

Excelは日付を日付として認識せず、テキストを認識するため、ソートオプションはAからZになります。正しく実行すると、次のようになります。

http://i.stack.imgur.com/Qb4Pj.png

したがって、Excelが日付を認識することを確認することが重要です。それを行う最も簡単な方法は、ショートカットを使用することCTRL+SHIFT+3です。

これが私があなたのデータに対して行ったことです。上記の投稿からコピーして、Excelに貼り付けました。次に、上記のショートカットを適用し、必要な並べ替えオプションを取得しました。画像を確認してください。

http://i.stack.imgur.com/yAa6a.png


2
残念ながら、そのショートカットは私には機能しません。
パトリック14

お使いのシステムでは、ショートカットは何をしますかPatrick。
火災14

3
ショートカットはまったく何もしないようです。Office 2007、2010、2013を実行しているいくつかのシステムがありますが、CTRL SHIFT 3ショートカットに反応するシステムはありません。CTRL 1は、「セルのフォーマット」ダイアログを正しくポップアップします。
パトリック14

「Ctrlキー+ Shiftキー+#」としてややだらし参照はCtrl + Shiftキー+ 3キーボードショートカット、ここでは、手段は、Excel 2007、2010、2013年に「日、月、年と日付の書式を適用」、そして具体的に2016年( 、私のエクセル2013で、それは「D-MMM-YY」です)、Microsoftのドキュメントは、細胞がすでに含まれていなければならないことを...(続きを説明していません)。
スコット

Excelは、日付/時刻データとして認識し、ここでは誰もが持っているように、それが思われること(続き)...値明確にそれを説明していない、パトリックはイングランドにあるので、エクセルの彼のバージョンのような文字列を認識している04/08/201204/09/200904/01/2010のように4 - 8月- 2012 、2009年9月4日、2010年1月4日、それぞれ04/21/2011テキスト文字列として処理しています(21か月目がないため)。一部の値はテキストであるため(また、一部の値は実際には誤って解釈されていると考えられます)、フォーマット(Ctrl + Shift + 3キーボードショートカットなどによる)は効果がありません。
スコット

2

問題はExcelが形式を理解できないことだと思います...日付形式を選択しても、テキストのままです。

これは簡単にテストできます。日付形式を更新する場合は、列を選択して右クリックし、セルの形式を選択します(既に行っているように)が、オプション2001-03-14(リストの下部近く)を選択します。次に、セルの形式を確認します。

日付形式の一部のみが正しく更新され、Excelが日付ではなく文字列のように処理していることを示していると思われます(下のスクリーンショットの異なる形式に注意してください)!

ここに画像の説明を入力してください

これには回避策がありますが、毎回エクスポートしているという理由だけで自動化されません。VBaを使用することをお勧めします。ここでは、USからUKの日付形式に変換するマクロを簡単に実行できますが、これは毎回VBaをシートにコピーして貼り付けることを意味します。

または、(交換から)新しく作成されたエクスポートされたExcelシートを読み取るExcelを作成し、VBaを実行して日付形式を更新します。エクスポートされたExchange Excelファイルは常に同じファイル名/ディレクトリを持ち、動作例を提供すると仮定します。

そのため、ImportedData.xlsm(Excelが有効)と呼ばれる新しいExcelシートを作成します。これは、エクスポートされたExchange Excelファイルをインポートするファイルです。

このVBaをImportedData.xlsmファイルに追加します

Sub DoTheCopyBit()

Dim dateCol As String
dateCol = "A"        'UPDATE ME TO THE COLUMN OF THE DATE COLUMN

Dim directory As String, fileName As String, sheet As Worksheet, total As Integer

Application.ScreenUpdating = False
Application.DisplayAlerts = False

directory = "C:\Users\Dave\Desktop\"                   'UPDATE ME
fileName = Dir(directory & "ExportedExcel.xlsx")       'UPDATE ME (this is the Exchange exported file location)

Do While fileName <> ""

'MAKE SURE THE EXPORTED FILE IS OPEN
Workbooks.Open (directory & fileName)

Workbooks(fileName).Worksheets("Sheet1").Copy _

Workbooks(fileName).Close

fileName = Dir()

Loop

Application.ScreenUpdating = True
Application.DisplayAlerts = True

Dim row As Integer
row = 1
Dim i As Integer
Do While (Range(dateCol & row).Value <> "")

     Dim splitty() As String
     splitty = Split(Range(dateCol & row).Value, "/")
     Range(dateCol & row).NumberFormat = "@"
     Range(dateCol & row).Value = splitty(2) + "/" + splitty(0) + "/" + splitty(1)
     Range(dateCol & row).NumberFormat = "yyyy-mm-dd"
     row = row + 1
Loop


End Sub

また、日付の形式をyyyy-mm-ddに更新しました。これは、Excelが最新の値ではなくソートフィルターAZを提供したとしても機能するためです。

上記のコードにはバグがあると確信していますが、どのタイプのデータがあるのか​​は明らかにわかりませんが、1列の日付(あなたが持っているように)でテストしましたが、私にとってはうまくいきます!

MS OfficeにVBAを追加するにはどうすればよいですか?


まあ...これを数日間残して少し露出を増やしますが、これは確かな答えのようです。これは絶対にクレイジーですが、これが必要だとは信じられません。ソースのデータをpowershellの小さな関数で修正してISO形式に変換しましたが、その時点でExcelが日付として認識しても問題ありません:/
Patrick


1

私はそれを考え出した!

日付の最初と最後にスペースがあります。

  1. 検索と置換を使用してスペースバーを押すと、機能しません。
  2. 月番号の直前でクリックし、Shiftキーと左矢印を押して選択してコピーする必要があります。マウスを使用してスペースを選択する必要がある場合があります。
  3. 次に、これを検索および置換のスペースとして貼り付けると、すべての日付が日付になります。
  4. スペースと日付がある場合は、「データ」>「データへ移動」>「列へのテキスト」>「区切り文字」>「スペース」を選択して、終了します。
  5. すべてのスペースが削除されます。

検索と置換がスペースバーで機能しないのは、ギャップがタブである可能性が高いためです。
パトリック

0

Excelが頑固に日付として列を認識することを拒否する場合、別の列に置き換えます。

  • 古い列の右側に新しい列を追加します
  • 新しい列を右クリックして選択します Format
  • 形式を設定します date
  • 古い列全体を強調表示してコピーする
  • 新しい列の一番上のセルを強調表示して、を選択しPaste Special、貼り付けのみvalues
  • これで、古い列を削除できます。

私はこれを試しましたが、新しいコラムでも同じように動作します。Daveの答えをご覧ください。上部のスクリーンキャップは、カラム間を何度移動しても問題ありません。
パトリック

新しい列の数式でDATEVALUE(old column)関数を使用して問題を強制し、[ホーム]リボンバーの[数値の書式設定]ドロップダウンリストを使用して[短い/長い日付]を選択します。
ハリーマック

0

数字1(1)をコピーし、PASTE SPECIAL関数を使用して日付列(データ)に乗算しました。次に、一般的な書式設定、つまり42102に変更 し、書式設定に日付を適用すると、日付として認識されます。

お役に立てれば


0

r0bertsを含む上記のすべてのソリューションは失敗しましたが、この奇妙なソリューションが最速の修正であることがわかりました。

ダウンロードしたアカウントトランザクションのスプレッドシートで「日付」を並べ替えようとしていました。

これはCHROMEブラウザ経由でダウンロードされていました。「日付」を操作しても、それらは古いものから新しいものへのソート可能として認識されません。

しかし、それからINTERNET EXPLORERブラウザ経由でダウンロードしました-驚くべきことです-列に触れることなく即座にソートできました。

さまざまなブラウザーがデータのフォーマットに影響を与える理由を説明することはできませんが、それは明らかに、非常に迅速な修正でした。


0

英国での私の解決策-私は次のように日付がドットで囲まれていました:

03.01.17

これを次の方法で解決しました。

  1. 列全体を強調表示します。
  2. 検索して選択/置換に移動します。
  3. 私はすべてのストップを真ん中のダッシュ(例えば03.01.17 03-01-17)に置き換えました。
  4. 列を強調表示したままにします。
  5. セルの書式設定、数値タブでの日付の選択。
  6. タイプを使用する 14-03-12(私の場合は中ダッシュをために必須)
  7. ロケール英語(イギリス)

列をソートすると、その年のすべての日付がソートされます。


0

さまざまな提案を試しましたが、私にとって最も簡単な解決策は次のとおりでした...

例については、イメージ1および2を参照してください(注-一部のフィールドは、例に寄与しないため、意図的に非表示にされています)。これが役立つことを願っています...

  1. フィールドC-私を夢中にさせた混合フォーマット。これは、データがデータベースから直接取得され、余分なスペースやクレイジーな文字がなかった方法です。たとえば、テキストとして表示する場合、2016年1月1日は「42504」タイプの値として表示され、そのまま表示された2006年4月15日と混合されます。

  2. フィールドF-フィールドCの長さを取得しました(LEN式は、日付形式に応じて10分の5の長さになります)。フィールドは、簡単にするために一般形式です。

  3. フィールドG-混合日付の月コンポーネントの取得-フィールドF(5または10)の長さの結果に基づいて、フィールドCの日付値から月を取得するか、文字列の月文字を取得します。

  4. フィールドH-混合された日付の日のコンポーネントの取得-フィールドF(5または10)の長さの結果に基づいて、フィールドCの日付値から日を取得するか、文字列の日付文字を取得します。

私はその年にもこれを行うことができ、その後、一貫性のある3つのコンポーネントから日付を作成します。それ以外の場合、分析で個々の日、月、年の値を使用できます。

画像1:値とフィールド名を示す基本的なスプレッドシート

画像2:上記の説明と一致する式を示すスプレッドシート

これがお役に立てば幸いです。


(1)回答が実際に機能することを示すために画面イメージを投稿するのは良いことですが、ソリューションの数式は回答の本文にテキストとして投稿し、人々がそれらをコピーして貼り付けられるようにすることをお勧めします。(2)あなたは問題を理解しているようです—数値の日付04/08はあいまいです。 04/08一部のロケール(米国など)では4月8日、他のロケール(イギリスなど)では4月4日と解釈されます。しかし、月番号と月の日が異なるため、これらはあいまいです。…(続き)
スコット

(続き)...なぜあなたは使用することになり、国連  のようなあいまいな日付を01/01あなたの答えには?(3)実際には、シートに月#が15の行があるので、問題を理解しているか、答えが実際に機能するかはわかりません。それは明らかなエラーのようです。そして、それ04/15が明確であることを考えると(4月15日を意味するに違いありません)、メソッド01/11が11月の1日目として解析されることは意味がありません。…(続き)
スコット

(続き)…(4)せいぜい、答えはnn / nn / nnnnのような日付のみを処理することです。それはのような日には失敗します5/85/085/2805/8、と11/8。また、おもしろい事実-あなたの答えは、1927年5月17日以降と2173年10月17日以降に失敗します。Y10Kの問題を気にしないでください。今から154年後に問題が発生する可能性があります。(5)あなたは、なぜあなたはしないでください「私は年のためにこれを行うだけでなく、その後、一貫性のある3つのコンポーネントから日付を作成することができます」、と言う、と示して、それを?…(続き)
スコット

(続き)…不完全なバージョンを提示したときにメソッドが機能することを確認するのは特に困難です。月、日、年が日付に再構成されていないもの。(6)Patsaeedに話したように、質問からOPのデータを使用した方が、自分で作成するよりも良かったでしょう。OPのデータを使用できなかったので、Patsaeedのデータを使用したことがあれば良かったので、少なくともリンゴとリンゴを比較することができます。…(続き)
スコット

(続き)…そして、OPのデータを使用する場合でも、他の誰かのデータを使用する場合でも、シナリオに元の入力を表示していた方がよかったでしょう。(例えば、行7のために、それはある01/11/2016か  11/01/2016?)そして、あなたがあなた自身のデータを使用するつもりなら、あなたは、(例えば)方法を示し同月から日付を含めていた場合、それは素敵だっただろう1/11し、1/21処理されますが異なって。そして、なぜ重複データがあるのですか?同じ4つの値を複数回使用して19行を無駄にし、23行に分散しています。
スコット

0

主題を少し長く共有するだけでなく、より簡単なソリューション..... マクロやマニアックなものを実行する必要はありません。

混合された日付はスナップショットに優れています:

ここに画像の説明を入力してください

  • 日付は混合形式です。
  • したがって、対称的な日付形式を作成するために、「混合形式」の日付列をTEXTに変換する追加の列が作成されています。
  • そのテキストから、「/」の位置を特定し、MID式を使用して日付、月、年を決定する中間テキストを抽出しました。
  • 元々日付であったものは、式はエラー/ #VALUE結果で終了しました。-最後に、作成した文字列から-それらをDATE式で日付に変換しました。
  • #VALUE DATE式に追加されたIFERRORによってそのまま選択され、列が必要に応じてフォーマットされました(ここではdd / mmm / yy)

*上記のエクセルシートのスナップショットを参照(=混在した日付のエクセルスナップショット)*


(1)回答が実際に機能することを示すために画面イメージを投稿するのは良いことですが、ソリューションの数式は回答の本文にテキストとして投稿し、人々がそれらをコピーして貼り付けられるようにすることをお勧めします。(2)のようにあなたの式に示す、彼らは列を参照している限り、あなたのイメージには、間違っている  VWと  X彼らは列を参照する必要があるとき  BCと  D。…(続き)
スコット

(続き)…(3)自分で作成するのではなく、質問からOPのデータを使用した方がよかったでしょう。また、OPのデータを使用する場合でも、独自のデータを使用する場合でも、元の入力をシナリオに示していれば良かったでしょう(たとえば、9行目では、5/8/2014または  5/08/2014)。また、独自のデータを使用する場合、同じ月の日付を含めて、異なる方法5/85/28処理する方法を(たとえば)示すことができれば便利です。そして、なぜ重複データがあるのですか?同じ値を複数回使用して、6つの行を無駄にしました。
スコット

0

これは、Excelのロケール間で日付データを交換するときに常に発生します。データをエクスポートするVBAプログラムを制御できる場合は、日付自体ではなく、日付を表す数値をエクスポートすることをお勧めします。数値は、フォーマットとロケールに関係なく、単一の日付と一意に相関します。たとえば、2010年9月24日を示すCSVファイルの代わりに40445が表示されます。

各セルを保持するエクスポートループで、日付の場合、CLng(myDateValue)を使用して数値に変換します。これは、テーブルのすべての行を実行し、CSVにエクスポートするループの例です(文字列内のコンマもインポート時に削除するタグに置き換えますが、これは必要ない場合があります)。

arr = Worksheets(strSheetName).Range(strTableName & "[#Data]").Value

    For i = LBound(arr, 1) To UBound(arr, 1)
        strLine = ""
        For j = LBound(arr, 2) To UBound(arr, 2) - 1
            varCurrentValue = arr(i, j)
            If VarType(varCurrentValue) = vbString Then
                varCurrentValue = Replace(varCurrentValue, ",", "<comma>")
            End If
            If VarType(varCurrentValue) = vbDate Then
                varCurrentValue = CLng(varCurrentValue)
            End If
            strLine = strLine & varCurrentValue & ","
        Next j
        'Last column - not adding comma
        varCurrentValue = arr(i, j)
            If VarType(varCurrentValue) = vbString Then
                varCurrentValue = Replace(varCurrentValue, ",", "<comma>")
            End If
            If VarType(varCurrentValue) = vbDate Then
                varCurrentValue = CLng(varCurrentValue)
            End If
        strLine = strLine & varCurrentValue

        strLine = Replace(strLine, vbCrLf, "<vbCrLf>") 'replace all vbCrLf with tag - to avoid new line in output file
        strLine = Replace(strLine, vbLf, "<vbLf>") 'replace all vbLf with tag - to avoid new line in output file
        Print #intFileHandle, strLine
    Next i

0

私は上記のすべての提案に運がなかった-魅力のように機能する非常にシンプルなソリューションを思いついた。データをGoogleスプレッドシートに貼り付け、日付列をハイライト表示し、形式をクリックしてから、数字、数字をもう一度クリックして、数字形式に変更します。次に、データをコピーしてExcelスプレッドシートに貼り付け、日付をクリックして、セルを日付に合わせて書式設定します。とても速い。お役に立てれば。


0

この問題は私を夢中にさせ、それから私は簡単な修正につまずいた。少なくとも私のデータではうまくいきました。簡単に覚えられます。しかし、なぜこれが機能するのかはわかりませんが、上記のように型を変更しても機能しません。1.日付のある列を選択します2.日付で年を検索します(例:2015)。すべてを同じ年の2015年に置換を選択します。3.各年について繰り返します。これにより、年ごとにタイプが実際の日付に変更されます。
データに何年もある場合、これは依然として面倒です。201を検索して201に置き換える(2010〜2019を置き換える)方が高速です。200を200に置き換えます(2000年から2009年に置き換えます)。などなど。


0

日付を選択し、その上でこのコードを実行します。

On Error Resume Next
    For Each xcell In Selection            
        xcell.Value = CDate(xcell.Value)     
    Next xcell                              
End Sub

-1

私はMacを使用しています。

Excelの設定>編集>日付オプション>日付システムを自動的に変換に移動します

また、

[テーブルとフィルター]> [日付をグループ化する]に移動します。

問題はおそらく、異なる日付システムのファイルを受け取ったときに始まり、それがExcelの日付機能を台無しにしました


-2

私は通常、並べ替えまたは合計の目的で追加の列を作成するだけなので、使用しますyear(a1)&if len(month(a1))=1,),"")&month(a1)&day(a1)

これyyyymmddにより、ソート可能な結果が提供されます。使用するlen(a1)だけで、余分なゼロは数ヶ月のために追加することができます1-9。


2
日付は日付として認識されないため、これは役に立ちません。また、並べ替えの目的で追加の列を使用する必要はほとんどありません
CallumDA 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.