CSV形式で、頭に”0”の入る数字項目を正しく表示させるには
どうすればよいでしょうか?
例えば、社員コード「00123」という値を.CSVファイルに入れ、
エクセルで開くと「123」となってしまいます。
過去のNo3426を見たら回避方法は載っていたのですが、
開く際になにかをするのではなく、CSVファイルを作成する時点で、
どうにかしたいのですが...。
ダブルコーテーションでくくってもだめでしたし、
シングルコーテーションを頭につけた場合では0は消えなかったのですが、
その代わり初期表示でシングルコーテーションまで表示されてしまいます。
どうにかEXCELでは開くだけで文字列扱いできる方法はないのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (3件)

CSVファイルというのは単なるテキストファイルなので、文字のやりとりしかできません。


そのため、あとはExcel側で対応するしかないと思います。

読み込むファイルの方に該当項目を文字で設定して置いて、そこに読み込むしかないと
思います。
    • good
    • 0
この回答へのお礼

やっぱりそうですか...。
一応、シングルコーテーションを頭につけると
初期表示ではシングルコーテーションが頭について表示されてしまいますが、
一度、セル内にフォーカスを持っていくと
シングルコーテーションが見た目上消えるので、
最低でもそれを行ってくれるオプションか何かがあるかなとも
思ったんですけどねぇ。

お礼日時:2001/05/29 11:39

やはり、どうしてもテキストファイルウィザードを使わないと、


スマートに行かないようです。

で、かなり苦しい方法なのですが、あまり目立たない文字を入れて
数字にみえなくしてしまう、というのはどうでしょう。例えば、

00123_

とか(全角の空白なんかは、きちんと(?)判断して数字にして
くれちゃうんですよね)。

# やっぱり、駄目だろうなあ (^^;
    • good
    • 0
この回答へのお礼

いや、だめではないですよ。
他に方法がなければそうするしかないですよね。
やっぱり。
社員コードでとかであれば、「No.~」とするのも手かななんて思ったんですが、
すべてのデータにそれがくっつくのもダサいかなって感じです。
でも、しょうがないので検討してみます。

お礼日時:2001/05/29 11:45

ExcelでCSVファイルを読み込むと引用符に関係なく数字のみの項目のデータ型が数字と認識されます。


以下の方法を試してください。

1.まず、CSVファイルの拡張子を「txt」に変換します。
2.Excelを起動します。
3.ファイルメニューから読み込みを選択します。
4.「ファイル」の種類からテキストファイルを選びます。
5.1のファイルを選択します。
6.テキストファイルウイザードが起動します。
7.カンマやタブで区切られたデータを選択します。
8.「区切り文字」でセミコロンとカンマをONにします
9.プレビューを頼りに社員コードの欄を選択し、形式を「文字」に指定します。

この回答への補足

それは過去の内容で見ましたと書いたはずですが...。

補足日時:2001/05/29 11:39
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q大量のCSVファイルをExcel形式に変換する

お世話になります。
大量のCSV(.csvファイルをExcel(.xls)ファイルに変換したい
と考えております。
リネームソフトを使って、(.csv)⇒(.xls)の一括変換を
したところ、拡張子は確かに.xlsに変換されたのですが、
中身はCSVのままとなっておりました。
(↑ファイル名とシート名が同期を取っているので)

このCSVを確実にエクセル形式へと変換したいのですが、
どなた様かいいお考えをお持ちでしたら教えてください。
ググってみたところ、そういったアドインがあるのですが、
できれば費用をかけずに行いたいです…。

Aベストアンサー

こんにちは。

すでに、マクロが1つ出ているようですが、私も作ってみました。

これは、ファイルをマルチセレクトして、そのファイル群を、Excelのマクロにより、一気に、CSV から XLS(Excel標準フォーマット)変換するマクロです。出来上がったら、Explorer 等で、確認してみてください。

>アドインがあるのですが、
私の個人的な意見ですが、この程度のものは、アドイン化すべきものではありませんから、よほど付加価値をつけないと公開用のアドインにはなりませんが、一般的にみて、アマチュアの作ったアドインは、押しなべて、あまり出来の良いものが少ないように思います。ですから、なるべく、一般のマクロで解決するように望みます。


'---------------------------------------------------

'<標準モジュール>
Sub CSV2XLS()
  'CSV を XLS に変換するマクロ
  Dim myArray() As String
  Dim FileName As Variant
  Dim fn As Variant
  Dim xlFileName As String
  Dim xlFileBaseName As String
  Dim TextLine As String
  Dim FileNo As Integer
  Dim i As Long
  Dim k As Long
  '基本となるフォルダ
  'BASE_DIR=""なら、マクロのあるブックと同じ場所のフォルダ
  Const BASE_DIR As String = ""
  If BASE_DIR <> "" Then
   ChDir BASE_DIR
   Else
   ChDir ThisWorkbook.Path
  End If
  FileName = Application.GetOpenFilename("CSV ファイル(*.csv),*.csv", MultiSelect:=True)
  If VarType(FileName) = vbBoolean Then
   Exit Sub
  End If
  Application.ScreenUpdating = False
  For Each fn In FileName
   On Error GoTo NextStatus
   With Workbooks.Open(fn)
     xlFileName = Mid$(fn, 1, InStrRev(fn, ".") - 1) & ".xls"
     Do
      k = k + 1 '同名の時枝番をつける
      If k > 3 Then Exit Do
      If Dir(xlFileName) = "" Then
        .SaveAs xlFileName
        xlFileBaseName = Mid$(xlFileName, InStrRev(xlFileName, "\") + 1)
        Workbooks(xlFileBaseName).Close False
        k = 0
        Exit Do
        Else
        xlFileName = Mid$(fn, 1, InStrRev(fn, ".") - 1) & "_" & CStr(k) & ".xls"
      End If
     Loop
   End With
NextStatus:
  Next fn
  Application.ScreenUpdating = True
  MsgBox "終了しました。",64
End Sub

'---------------------------------------------------

こんにちは。

すでに、マクロが1つ出ているようですが、私も作ってみました。

これは、ファイルをマルチセレクトして、そのファイル群を、Excelのマクロにより、一気に、CSV から XLS(Excel標準フォーマット)変換するマクロです。出来上がったら、Explorer 等で、確認してみてください。

>アドインがあるのですが、
私の個人的な意見ですが、この程度のものは、アドイン化すべきものではありませんから、よほど付加価値をつけないと公開用のアドインにはなりませんが、一般的にみて、アマチュアの...続きを読む

Qシングルコーテーションをダブルコーテーションに置換

エクセルで
シングルコーテーションを
ダブルコーテーションに置換することは出来ないのですか?

セルに「'aaa」がはいってるのですが
これを「''aaa」にする方法を教えてください。

置換だとなぜかできません。

Aベストアンサー

別セルから参照して、式で加工。(="""" & データのセル。Midで2文字目からかも)
果をコピーして、「形式を選択して貼り付け」で値として貼付けるとか。

QエクセルデータからCSVファイルへの変換について

現在エクセルファイルにあるデータをCSVファイルへ変換する作業(エクセルでデータを作成して、保存時にCSVファイルを選択)をしているのですが、以下の例の場合うまく変換ができません・・・。
基本的な質問かもしれませんがどなたかご存知でしたら教えていただけると助かります。
よろしくお願いします。

【例】
        (エクセル) ⇒  (CSV)

うまくいく   12345     12345

うまくいかない 01234     1234


上記のようにエクセル上は文字列で管理されている
ケースだとCSVファイルに変換した時数列に変換
され、上記例のうまくいかないケースのように
頭に0がある場合CSVだと0が消えてしまいます。

よろしくお願いします。

Aベストアンサー

> CSVファイルに変換した時数列に変換

ちがいます。
いったんCSVで保存したものをエクセルで開いたときにそうなるのです。
CSVをエクセルでそのまま開かず、メニューの「データ」、「外部データの取り込み」、「すべてのファイル」、で取り込み、書式で文字列を選べばOKです。
あるいはCSVを拡張子を.TXTにしてテキストで取り込んでもOK

Q【Excel】 csvファイルを参照した時、頭の0が消されてしまいます。。

こんにちは。
Excelでcsvファイルを参照するシートが有ります。
参照元のcsvファイルの内容が変更された場合、
このシートの内容を更新するために、csvファイルを開かなければならないと思います。
ただ、Excelでcsvファイルを開くと表示形式が標準となるため、csvに含まれるハイフンのない、
郵便番号(09*****) や電話番号(090********)といった数値の頭の0が消されてしまい(9*****)や(90********)と表示されてしまいます。
文字列として扱えればよいと思うのですが…。

参照先の(09*****)を表示するにはどうしたらよいでしょうか。

Aベストアンサー

#1が標準のご回答ですが、もしVBAに興味あれば
読み込むシートの文字列の列の書式を文字列に設定し、
下記コードを標準モジュールに貼り付けて
Sub test01()
Filename = Application.GetOpenFilename
MsgBox Filename
Open Filename For Input As #1
i = 1
While Not EOF(1)
Line Input #1, a
s = Split(a, ",")
For j = 0 To UBound(s)
Cells(i, j + 1) = s(j)
Next j
i = i + 1
Wend
Close #1
End Sub
を実行(F5キー)すればよいです。

QCSVファイルをEXCELに変換の自動化作業

CSVファイルをEXCELに変換の自動化作業
{CSVファイルをEXCELに変換するため、
excel  ツールバーよりデータ(D)→外部データの取り込み(D)→テキストファイルのインポート→ファイルの種類変更→全てのファイル→○○.csvのファイル指定→“,”の区切り選択、、ウィザードに従って変更し次へで進む→A1が指定されるのでそのまま完了→CSVがEXCELファイルに変換された。
参照したabc1.csvの名前に対して新しいabc1.xlsとなずけて登録する。これらの作業をMYドキュメントのhenkan ホルダーに入っているCSVファイルに同様に作業して同じくhenkan ホルダーに入れる。}
上記の{ }内の作業を何か,excelのVBAのマクロのようなもので実行することはできませんか。
やり方を教えてください。

Aベストアンサー

もともと、CSVとはカンマ区切りのはずですから、そうではないということなら、このコードは、違っています。こういう質問系掲示板は、質問者が分らない部分をお助けするような形で出来上がるものだと思いますので、回答者の回答を最初から否定するような発言は控えていだきたいと思いました。なお、フォルダーの中を一気に変換してしまうようなコードは、必ず変換後の様子を確認してからでなくてはなりませんので、それを確認していただくつもりでした。

私自身は、ここのカテゴリで、私は、一ゲンではありませんので、後々のためにコードを掲示しておきます。以下は、私が考えていたコードであって、その処理後の状態を保証するものではありません。

'<標準モジュール推奨>
Sub DirectryCSV2XLS()
  Dim myCSVFnames() As String
  Dim myCSVFname As String
  Dim xlFileName As String
  Dim i As Long
  Dim j As Long
  Dim n As Variant
  Dim msg As String
'=====================================
  '以下 フォルダー要設定
  Const MY_FOLDER As String = ""C:\Documents and Settings\<User>\My Documents\"
'=====================================
  If Left$(MY_FOLDER, 1) <> "\" Then MsgBox "フォルダーの設定の最後は、「\」が必要です。": Exit Sub
  If Dir(MY_FOLDER, vbDirectory) = "" Then _
   MsgBox "そのフォルダーは存在しません。", vbCritical: Exit Sub
 
  myCSVFname = Dir(MY_FOLDER & "*.csv")
  Do While myCSVFname <> ""
   ReDim Preserve myCSVFnames(i)
   myCSVFnames(i) = myCSVFname
   i = i + 1
   myCSVFname = Dir()
  Loop
  If i = 0 Then MsgBox MY_FOLDER & " には、CSVファイルが存在しません。", vbCritical: Exit Sub
  Application.ScreenUpdating = False
  Application.DisplayAlerts = False
  For Each n In myCSVFnames
   xlFileName = Mid$(n, 1, InStrRev(n, ".csv")) & ".xls"
   If Dir(MY_FOLDER & "\" & xlFileName) = "" Then
     With Workbooks.Open(MY_FOLDER & "\" & n, Format:=2)
      .SaveAs MY_FOLDER & xlFileName
      Workbooks(xlFileName).Close False
      j = j + 1
     End With
   End If
  Next n
  Application.DisplayAlerts = True
  Application.ScreenUpdating = True
  If i <> j Then msg = "既に" & CStr(i - j) & "個のCSV ファイルは、XLSに変換されています。"
  MsgBox i & "個のCSVの内、" & j & "個のファイルをXLSに変換しました。" & vbCrLf & msg
End Sub

もともと、CSVとはカンマ区切りのはずですから、そうではないということなら、このコードは、違っています。こういう質問系掲示板は、質問者が分らない部分をお助けするような形で出来上がるものだと思いますので、回答者の回答を最初から否定するような発言は控えていだきたいと思いました。なお、フォルダーの中を一気に変換してしまうようなコードは、必ず変換後の様子を確認してからでなくてはなりませんので、それを確認していただくつもりでした。

私自身は、ここのカテゴリで、私は、一ゲンではありませ...続きを読む

Q頭に"000"の付いたCSVデータをエクセル97で開くときの処理

以下のような頭に"000"の付いたCSVデータがあります。
'000123,456,AAA

これをエクセルで開くと
'000123 456 AAA

と表示されます。

ここで、シングルコーテーションを表示させないで
000123 456 AAA
というように表示できないでしょうか?

ご存知の方いらっしゃいましたら教えてください。

Aベストアンサー

実際、『'』に1バイト使っているわけで、読み込んだ後一括編集してはどうでしょうか。

読み込んだ後、『'000123』 となった列を選択し、

 データ→区切り位置→

 区切り位置指定ウイザード1/3で
  元のデータ形式で
    カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ を選択→次へ

 区切り位置指定ウイザード2/3で
  文字列の引用符で
    『'』を選択→次へ

 区切り位置指定ウイザード3/3で
  列のデータ形式で
    文字列を選択→完了

これで『000123』と表示されるはずです。


個人的には『'』が先頭に付いたデータは扱ったことはありません。
Excelで扱うとすれば、
 1.CSVファイルから『'』を削除(メモ帳やワードパッドで置き換え)
 2.CSVファイルのファイル名の拡張子を『.txt』に変えて(エクスプローラで)
 3.Excelでその『*.txt』ファイルを開く
 4.ウイザードで、先頭の『0』を有効にしたい項目については文字列に設定する。
とするかもしれません。面倒なので、読み込みマクロを作るのが一番のような気もします。

ご参考に。

実際、『'』に1バイト使っているわけで、読み込んだ後一括編集してはどうでしょうか。

読み込んだ後、『'000123』 となった列を選択し、

 データ→区切り位置→

 区切り位置指定ウイザード1/3で
  元のデータ形式で
    カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ を選択→次へ

 区切り位置指定ウイザード2/3で
  文字列の引用符で
    『'』を選択→次へ

 区切り位置指定ウイザード3/3で
  列のデータ形式で
    文字列を選択→完了

これ...続きを読む

QCSVをExcelに変換したい

お世話になります。

CSVファイルをExcelファイルに変換する場合、CSVファイルをExcelで開いて拡張子を「xls」もしくは「xlsx」を指定して保存すればよいかと思いますが、PCにExcelがインストールされてない環境の場合、Excelに変換することは不可能でしょうか。

今回、Accessにてツールを作成し、CSV(カンマ区切り)のデータを読み込もうとしておりますが、そのデータの中には単語の中にカンマが含まれているものがある為、普通にCSVをインポートしようとすると、ズレてしまいます。

なので、インポートする前準備としていったんExcelに変換したいと考えているのですが。。そのPCにExcelがインストールされてないと、やはり変換することは出来ないでしょうか。

もしくは、カンマ区切りのCSVファイルをタブ区切りに変換したりすることは出来ますでしょうか。

ご教授の程、宜しくお願い致します。

Aベストアンサー

>Accessにてツールを作成し、CSV(カンマ区切り)のデータを読み込もうとしておりますが、そのデータの中には単語の中にカンマが含まれているものがある為、普通にCSVをインポートしようとすると、ズレてしまいます。

毎回同じCSVのフォーマットだったら
(項目数やデータ型など)
一度インポートウィザードで進めて行って
設定ボタンから定義を保存し
次回からはその定義名を使用してインポートしては?
VBAならDocmd.transferText のヘルプにあるSpecificationNameに定義名を入れます。
・・・じゃダメかいな?

>インポートする前準備としていったんExcelに変換したい
CSVファイルを直接開くとExcelのお節介機能で
電話番号などの前ゼロがなくなったり、ハイフン付きのデータが日付と解釈されたり・・・
ということががあるので、拡張子CSVをTxtに変えてから
Excelで開こうとするとウィザードが立ち上がって・・・と出来ますが
結局のところ二度手間です。

ご参考まで。

QCSVファイルをエクセルで開くとき、電話番号の列を文字列で開くには

いつもお世話になってます。
基本的な質問ですみません。
CSVファイルをエクセルで開くとその中の電話番号の列が毎回「33.7E+08」などおかしな数値になってしまいます。
テキストから開く場合だとその列を文字列と設定すれば0から始まる電話番号で表示するのは知っていたのですが、そのままエクセルで直接電話番号欄はそのまま電話番号を表示するようにする事は難しいでしょうか。
よろしくお願い致します。

Aベストアンサー

テキストファイル(csv やtsv)の、その電話番号の両端をダブルクォーテーション"で囲めば、ファイルから開く時に文字列として読み込めますよ。

QCSV形式に変換

プログラミング(C言語)で、ファイルの内容をCSV形式に変換し、指定した出力ファイルに出力するプログラムを作成せよ。という課題がありましたが、
ファイルの内容をCSV形式に変換
がわかりません。どのようなプログラムをかいたらよいのでしょうか?

Aベストアンサー

#5です。
よく見たらフィールド内での入れ替えが居るようなので、
#5で書いたやり方ではできませんね。。。
#参考だしいいのかな。。。

読み込みを一行ずつにして、
中を入れ替えて・・・
という作業が必要になります。

QEXCELのグラフ作成時に元データが#DIV/0のデータを0ではなく存在しないものと出来ませんか?

EXCEL2000で例えば折れ線グラフを作成します。

データ
   1月   2月   3月
a   6   3   12
b   7#DIV/0!   14
c   8    8   (IF関数で#DIV/0エラーを非表示)

このようなデータを使ってグラフを作成すると、#DIV/0!やIF関数で#DIV/0エラーを非表示にしたセルのグラフがゼロで表されます。

これをゼロと認識させずに、グラフ上で存在しないようにすることは不可能でしょうか?
現状は対象セルのデータを消去してからグラフ作成、印刷、データをもとの状態に戻して保存という作業をしています。

表現がわかりにくかったらごめんなさい。

  

Aベストアンサー

こんばんは

>IF関数で#DIV/0エラーを非表示
これはどのような式でしょうか?

もし 論理式部分が 除算分母が0の時 のIF()関数
などで =IF(論理式,"",計算式) などとしているのであれば

空白指定 "" の部分を NA() にしてみて下さい
=IF(論理式,NA(),計算式)


人気Q&Aランキング

おすすめ情報