以下の Excel の問題を解決しようとして頭が痛くなっています。Excel 2003 を使用しています。以下の形式の text.txt から数千のデータをインポートし、dd-mm-yyyy に分割しようとしています。
-> 6022015 (7 番)
->26012015 (8 桁)
Excel では、データ ツール > テキストを列に > 固定幅
-> 6!02!2015 (7 番号)
->26!01!2015 (8 桁)
列データ形式で、一般を選択して完了します。7つの数値については、3つの列に分割することに成功しました。しかし、8つの数値については、以下のエラーが発生します。以下は結果です。
->26012015 を ->2 60 12015 に変更します。「これは 2015 年 1 月 26 日のはずです」
-> 6022015 から ->6 2 2015 に変更
誰かエラーを特定して解決策を提供してもらえませんか?
答え1
日付が「ddmmyyyy」形式であることを願うので、テキストを列に入力する代わりに、検索と置換を試してください。「!」と何もない次に以下の式を適用します。
=IF(LEN(A2)=8,LEFT(A2,2)&"-"&MID(A2,3,2)&"-"&RIGHT(A2,4),"0"&LEFT(A2,1)&"-"&MID(A2,2,2)&"-"&RIGHT(A2,4))
これが期待通りであることを願います :)
答え2
生のデータがdmmyyyy
(7 桁) またはddmmyyyy
(8 桁) の形式であると想定します。
すべてのデータを列 A にコピーする (またはデータを列 A にインポートする) だけです。
B1に入力し
=DATE(RIGHT(A1,4),MID(A1,LEN(A1)-5,2),LEFT(A1,LEN(A1)-6))
、下方向にコピーします。列 B を として書式設定します
dd-mm-yyyy
。列 B が希望どおりになります。
答え3
これを試してみてください:
=substitute(a1,"!","/")
念のため、日付として返されない場合は、ゼロを追加してみてください。
=substitute(a1,"!","/")+0
また、セル内に空白が含まれている場合(詳細なテキストの左側または右側)、次のようにセルをトリミングします。
=trim(substitute(a1,"!","/")+0)
答え4
wilson
私個人としては、データを分解して再び組み立てるというアプローチを採用します。ただし、Text to Columns
ウィザードで成功するには、区切り文字または同じ長さのデータが必要です。
同じ長さのデータを簡単に実現できます。隣、または便利な場所に「ヘルパー列」を配置し、次の数式を使用します。
=IF(LEN(A1)=7,")"&A1,A1)
8 文字の値の列を取得するには、必要なだけコピーする必要があります。それができたら、列をコピーして、Paste|Values|Special
数式ではなく値の列を取得します。Text to Columns
ウィザードを使用して、幅を固定し、日付として解釈するように指示し、1 つの列 (複数の部分に分割したくない) にして、DMY
日付の種類を指定します。
出力の 1 列が「実際の日付」になり、それをコピーして元のデータの上に貼り付けることができます。または、その横に貼り付けたり、その他の方法でもかまいません。
重要なのは、データをすべて 8 文字の長さにして、すべて同じように扱えるようにすることです。Excel は、7 桁のデータが 1 桁の日なのか、2 桁の月なのか、またはその逆なのかを判断できないため、その点に注意して作業する必要があります。
6 桁のものがあったとしても、基本的な考え方は同じですが、数字を詰めるのが少し難しくなります。
また、これが機能するのは、最後の 4 桁が年であり、2 桁の年ではないこと、および月がすべて 2 桁の値であり、1 桁の月ではないことを知っているからです。そのことを確信できない場合は、より洗練されたアプローチが必要になります。