お世話になります。
CSVファイルをExcelで開いた時に発生する問題についての質問です。
元のCSVファイルのデータは、5項目(5列分)あります。
その内、4項目については、氏名などの文字列なので、Excelで開いても
別段問題なく表示されるのですが、問題とする1列に入っている
データが、ハイフンで結ばれた数字となっています。
実際の値は 1-2 や 2-3 や 6-4 などの値で、実は小学校の学年と
クラスを表したものです。
よって、ハイフンの左側は学年である 1~6 が入り、右側にはクラスの
数字が入っています(1組から6組の絶対値 1~6)。
これらを Excel で開くと、この列がハイフンで結ばれているために
「日付と認識」されてしまい、1-2 の場合は 1月2日 という具合に
自動的に変換されて表示してしまいます。
これを自動変換させない方法はありますでしょうか?
該当データのトップに予め「'(アポストロフィー)」を付けて、文字列
として判断させようと試みたのですが、この方法だと、確かに日付変換
はされませんでしたが、アポストロフィーもそのまま表示されてしまい格好
が悪いです。「'1-2」といった具合です。
解決方法を教えてくださる方、宜しくお願い致します。

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

A 回答 (3件)

CSVファイルを単純に開くと、エクセルが勝手にデータ形式を判断してしまい、困ることがあります。

2つ方法を書きます

1)CSVファイルの拡張子をTXTに変更してエクセルの「ファイル」→「開く」で開く

2)「データ」→「外部データの取り込み」→「データの取り込み」からCSVファイルを開く

どちらの方法もデータ取り込みのウィザードが立ち上がります。
この中で各列のデータ形式を指定する画面がありますから、クラスの列は「文字列」を指定してください
    • good
    • 4
この回答へのお礼

ありがとうございます。
解決しました。

お礼日時:2009/05/18 21:35

長々質問に書かなくても、有名な(質問が多い)問題。


データー外部データの取り込みー(略)-テキストファイルウイザード3/3
の画面で列(項目)ごとに書式を指定できる。
「データのプレビュー」のところで、項目(列)をクリックして(黒い背景になる)、右上部の「列のデータ形式」で「例えば「日付」を指定して仕舞い。
    • good
    • 3
この回答へのお礼

ありがとうございます。
解決しました。

お礼日時:2009/05/18 21:37

元のデータを全く変えずにexcelで読む必要が出来る度にいちいち


処理するのであれば、zap35さんの回答通りウィザードを経由して
列ごとにデータ形式を明示する方法が唯一の解ですね。

しかし、元々は「学年」と「クラス」という、2つの異なる属性の
データを安易にハイフンで結んで一つにまとめようとしたのが原因
ですから、ちゃんと2列に出力しておけば何の問題もなかったのだ
と指摘しておきます。

ついでに、先頭にシングルクォーテーションってのはよく紹介され
る手口ですが、ご自分でも経験された通りcsvなどの読み込みとは
相性が悪いです。一度セルを選択して編集状態にし確定しないと、
シングルクォーテーションが隠れませんね。そこで、「="1-2"」と
いう形式を試してみてください。開く人に手間をかけさせられない
上に2列に分けると文句を言われる、なんて場合に有効です。
    • good
    • 1
この回答へのお礼

ありがとうございます。
解決しました。

お礼日時:2009/05/18 21:36

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

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Qカレンダーを作成し、特定の日付の上に丸印をつける方法はありますか。

カレンダーを作成し、特定の日付の上に丸印をつける方法はありますか。
日付の上に丸印を付けると、下の日付の数字が消えてしまいます。

Aベストアンサー

エクセルを使ってのカレンダー作成だと仮定して、NO.1さんの回答の補足をします。

まず「オートシェイプ」の○機能を使って図形を描くと、図形の周囲を囲むように○が表示されますよね。
ここをダブルクリックすると「オートシェイプの書式設定」が出てきます。
その中の「色と線」の塗りつぶし"色"の部分が初期設定の「自動(白)」になっていると思いますが、ここを「塗りつぶしなし」に変更すると下の線や文字が表示されるようになります。

ちなみに、円を描くときにシフトキーを押しながら描くと、楕円ではなく「まん丸」な円を描くことが出来ますよ。

QExcelの列'A' 'B' 'C'...や、行'1' '2' '3'...の文字の大きさや種類

Excel2002を使っていますが、Excelの上にある列'A' 'B' 'C'...や、左にある行'1' '2' '3'...の文字の大きさや種類は変えることはできるのでしょうか?もし、変えれるのでしたらどうやって変えるのですか?

Aベストアンサー

「書式」「スタイル」「標準」の状態で「変更」を押して「フォント」の内容を変更してください。
列と行の文字フォントとサイズが変更されます。

Q原付の保証書に販売店印と日付が無いんです。

原付を買いましたが保証書に日付と販売店印がありません。
買ったところに電話しました。
『無くても買った日付もわかるし何かあったら直しますよ』とのこと。
田舎の近所のバイク屋のおじいさんです。

原付の保証書に販売店印と日付が無くってもかいませんか?

Aベストアンサー

保障期間を、ある程度過ぎても、保障を伸ばしてもらえると思っても良いと思います。おじさんも「直しますよ」と言ってくれていますし。消耗品は、直してくれませんが。
安くて品数の豊富な大手電気店より街の電気屋さんは、融通が利くと言いますし。
自賠責もその店で加入したなら、領収書とともに、1ヶ月の無料点検もありますし。証拠は、沢山あります。
購入して半年になる私の、バイクにも販売店の印しか捺印していなかったです。(今、確認しました)

QEXCELの表、組[A列]:番号[B列] を 組[A列]:番号[行]に変換する方法

EXCELに
A列に組、B列に番号がそれぞれ反映されている表があります。
これを
A列に組、同行に番号が横並びに配置された状態に変更したいと考えております(添付画像)。

D列にはA列の組名を「重複なし」で貼り付けます。
このとき、E列~K列にどのような数式を入力すればよろしいでしょうか?
E1に入力する数式を教えていただけるとありがたいです。
何卒よろしくお願いいたします。

Aベストアンサー

こんばんは!

画像の配置だとE1セルに
=IF($D1="","",IFERROR(INDEX($B$1:$B$1000,SMALL(IF($A$1:$A$1000=$D1,ROW($A$1:$A$1000)),COLUMN(A1))),""))

配列数式になりますので、Ctrl+Shift+Enterで確定!
この画面からコピー&ペーストする場合は
上記数式をドラッグ&コピー → E1セルを選択 → 数式バー内に貼り付け →そのまま(編集可能なまま)
Ctrl+Shiftキーを押しながらEnterキーで確定!
数式の前後に{ }マークが入り配列数式になります。

最後にE1セルのフィルハンドルで列・行方向にずぃ~~~!っとフィル&コピーします。

こんな感じではどうでしょうか?m(_ _)m

Qはがきの日付印について

郵便はがきを出すことになりました。

これは、郵便局の日付印をもらうためです。

一般に、確定日付というのだそうですが、日付の証明になるということで利用しようと思いました。ところが、最近は機械化のせいか日付の薄いスタンプがよくあり、できればはっきりした日付印が欲しいのですが、この場合どうしたらいいのでしょうか。

ポストではなく窓口で投函すれば、スタンプははっきり押してもらえるのでしょうか。それとも特別に窓口でお願いすべき、また、お願いできるのでしょうか。

教えてください。

Aベストアンサー

元・郵便局員です。

1.郵便物の集配を行う郵便局の場合
郵便窓口および郵便時間外窓口(ゆうゆう窓口)の営業時間内にお越しいただき、
「この場で、消印を押してください!」
とお申し出いただければ、押印します。

2.郵便物の集配を行わない郵便局の場合
「郵便局長が業務上差し支えないと判断した場合」に限り、その場で押印します。
支障があると判断した場合は、「押印しません」。

上記は、ごく普通の消印の場合です。http://www.geocities.co.jp/Playtown-Domino/5995/phi_gif/049.gif


つぎに、普通でない消印の場合ですが、最初の回答者様の回答にあります「風景スタンプ」(風景入り通信日付印)などの場合は、業務上の支障の有無に関係なく、差し出された郵便局で押印します。なお、全ての郵便局には配備されていないため、差し出し前にご確認ください。

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

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

Aベストアンサー

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

Q日付の薄い領収印について

次回の確定申告で医療費控除の手続きをする者です。
通院・入院の領収書をチェックしていたところ、どれも領収印が薄く日付の判別が出来ないことに気付きました。日付印とは別に発行日も印刷されているので、それで判るものもありますが、肝心の高額な入院費の領収書は、支払った1日前の日付で印刷されており、隠すようにその上に収入印紙が貼られていて、なおかつ領収印は読み取れない程薄いです。こんな状態で発行しておいて、「再発行はいたしません」と書かれてあります。来年申告の時期になって『無効』になったりしないか心配です。これで大丈夫でしょうか?
よろしくお願いします。

Aベストアンサー

医療費控除は、その年1月1日~12月31日までに実際に支払ったものが対象となりますので、そもそもは日付が確認できるべきものでなければならないとは思います。

ただ、実際には、ひとつひとつチェックするとは限りませんし、明らかに別の年の領収書でない限りは、薄くて良く見えない程度であれば、そのまま受け付けてもらえるものと思います。

気になるようでしたら、ご自分で別途で、一覧表のようなものを作られたら良いと思います。
医療機関と、治療を受けられた方の名前と、支払った月日と金額ですね。
それと、医療費控除には、通院等にかかる電車・バス等の公共交通機関による交通費も対象となり、これについては領収書は不要で、メモ書き等で良いので、このような一覧表の一番右等に、かかった交通費を記載している方も結構いらっしゃいますし、そのような表があれば、明らかに違う年とわからない限りは否定もし難い訳ですので、より無難とは思います。
エクセルを使えるようであれば、エクセルで作られても良いと思います。
(もちろん、そのような日ごとの一覧表が必須、という訳ではありませんので、それがなくても認められるとは思いますが)

医療費控除は、その年1月1日~12月31日までに実際に支払ったものが対象となりますので、そもそもは日付が確認できるべきものでなければならないとは思います。

ただ、実際には、ひとつひとつチェックするとは限りませんし、明らかに別の年の領収書でない限りは、薄くて良く見えない程度であれば、そのまま受け付けてもらえるものと思います。

気になるようでしたら、ご自分で別途で、一覧表のようなものを作られたら良いと思います。
医療機関と、治療を受けられた方の名前と、支払った月日と金額で...続きを読む

Q6列を配列に取込し1列を検索値、2列を書出ししたい

シート(抜取マスタ)のA列と
シート(マスタ全部)のA列をぶつけてヒットしたら
シート(マスタ全部)の該当行のE列を抜取マスタのF列に転記
するマクロを
ヒットしたら
シート(マスタ全部)の該当行のE,F列を抜取マスタのF,G列に転記
とか
シート(マスタ全部)の該当行のD,F列を抜取マスタのF,G列に転記
シート(マスタ全部)の該当行のE,F列を抜取マスタのF,H列に転記
に改造したいです。
●部分を修正しなければと思っていますが
思ったように動きません。教えてください。
よろしくお願いします。

Sub 検索貼付()

'シート(抜取マスタ)のA列と
'シート(マスタ全部)のA列をぶつけてヒットしたら
'シート(マスタ全部)の該当行のE,F列を抜取マスタのF,G列に転記
'データは2列目から開始
'ヒットしない場合は 無し と記入

Dim dic As Object
Dim i As Long
Dim v, w
Dim t As Single
t = Timer
With Sheets("マスタ全部")
'シート(マスタ全部)のデータを配列に取込
'(F2の部分とCount, 1の部分 →A~F列となる)
With .Range("F2", .Cells(.Rows.Count, 1).End(xlUp))
'Vに代入する事となる、検索する列の指定.Columns(1)=A列
v = .Columns(1).Value
'Wに代入する事となる、書出す値のある列の指定 (5)=E列
●w = .Columns(5).Value
End With
End With
Set dic = CreateObject("scripting.dictionary")
For i = 1 To UBound(v)
dic(v(i, 1)) = i
Next
With Sheets("抜取マスタ")
'検索値のある列指定(A2の部分とCount, 1の部分→A列~A列)
With .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))
v = .Value
For i = 1 To UBound(v)
If dic.exists(v(i, 1)) Then
v(i, 1) = w(dic(v(i, 1)), 1)
Else
'ヒットしない場合
v(i, 1) = "無"
End If
Next
'書き出しする列を指定(Offset(, 5)=検索値のA列より右5つ→F列)
●With .Offset(, 5)
.ClearContents
.NumberFormat = "@"
.Value = v
End With
End With
End With
Set dic = Nothing
Debug.Print Timer - t
End Sub

シート(抜取マスタ)のA列と
シート(マスタ全部)のA列をぶつけてヒットしたら
シート(マスタ全部)の該当行のE列を抜取マスタのF列に転記
するマクロを
ヒットしたら
シート(マスタ全部)の該当行のE,F列を抜取マスタのF,G列に転記
とか
シート(マスタ全部)の該当行のD,F列を抜取マスタのF,G列に転記
シート(マスタ全部)の該当行のE,F列を抜取マスタのF,H列に転記
に改造したいです。
●部分を修正しなければと思っていますが
思ったように動きません。教えてください。
よろしくお...続きを読む

Aベストアンサー

Sub 検索貼付02()
'シート(抜取マスタ)のA列と
'シート(マスタ全部)のA列をぶつけてヒットしたら
'シート(マスタ全部)の該当行のE,F列を抜取マスタのF,G列に転記
'データは2列目から開始
'ヒットしない場合は 無し と記入
Dim dic As Object
Dim i As Long
Dim v, w, vv '●
Dim t As Single
t = Timer
With Sheets("マスタ全部")
'シート(マスタ全部)のデータを配列に取込
'(F2の部分とCount, 1の部分 →A~F列となる)
With .Range("F2", .Cells(.Rows.Count, 1).End(xlUp))
'Vに代入する事となる、検索する列の指定.Columns(1)=A列
v = .Columns(1).Value
'Wに代入する事となる、書出す値のある列の指定=E:F
w = .Columns("E:F").Value '●
End With
End With
Set dic = CreateObject("scripting.dictionary")
For i = 1 To UBound(v)
dic(v(i, 1)) = i
Next
With Sheets("抜取マスタ")
'検索値のある列指定(A2の部分とCount, 1の部分→A列~A列)
With .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))
v = .Value
ReDim vv(1 To UBound(v), 1 To 2) '●
For i = 1 To UBound(v)
If dic.exists(v(i, 1)) Then
vv(i, 1) = w(dic(v(i, 1)), 1) '●
vv(i, 2) = w(dic(v(i, 1)), 2) '●
Else
'ヒットしない場合
vv(i, 1) = "無" '●
vv(i, 2) = "無" '●
End If
Next
'書き出しする列を指定(Offset(, 5)=検索値のA列より右5つ→F列+1列)
With .Offset(, 5).Resize(, 2) '●
.ClearContents
.NumberFormat = "@"
.Value = vv
End With
End With
End With
Set dic = Nothing
Debug.Print Timer - t
End Sub

では?
少しでも修正したところに●してあります。

Sub 検索貼付02()
'シート(抜取マスタ)のA列と
'シート(マスタ全部)のA列をぶつけてヒットしたら
'シート(マスタ全部)の該当行のE,F列を抜取マスタのF,G列に転記
'データは2列目から開始
'ヒットしない場合は 無し と記入
Dim dic As Object
Dim i As Long
Dim v, w, vv '●
Dim t As Single
t = Timer
With Sheets("マスタ全部")
'シート(マスタ全部)のデータを配列に取込
'(F2の部分とCount, 1の部分 →A~F列となる)
With .Range("F2", .Ce...続きを読む

Qワードで日付印の文字が表示されない

電子メールでワードの報告書が送られてきました。
承認欄に3人の日付印(丸くて真ん中に日付、上下に苗字)が貼られているのですが1人の印だけ丸のなかに日付しか入っていませんでした。
印刷プレビューでみても入っていません。
しかし他の人のパソコンで開いたところちゃんと苗字まで入っていました。どのようにしたら私のパソコンでも正しく表示できますか?

Aベストアンサー

No.3のasyuです。
ワードの新規画面に問題の部分を貼り付けした場合はいかがでしょうか?
表示される場合は、フォントキャッシュの破損かもしれません。
パソコンをセーフモードで起動して、何もしないで終了しますと回復すると思います。

ワード自体の不具合が考えられる場合は、こちらを試してみてください。
Word 2007、Word 2003、または Word 2002 の起動時または使用時に発生する問題のトラブルシューティング方法
http://support.microsoft.com/kb/921541/ja

Word 2000 起動時に問題が発生する場合の対処方法
http://support.microsoft.com/default.aspx?scid=kb;ja;880994

Qカンマ区切りcsvファイル上の'000'データの表示(エクセル)

Win95+エクセル2000です。

DBからカンマ区切りになるようにデータを抽出後、
一旦メモ帳に貼り付けてから名前をつけて保存でcsvファイルにし、
それをエクセルで開いて見ているのですが、
000で持っているデータが0になってしまいます。

ユーザー定義で見れなくはないですが、
一回目に開いた時から000で表示させることは可能でしょうか?

上記手順も含めてなにかご意見お持ちの方よろしくお願いします。

Aベストアンサー

データ抽出後拡張子をtxtにしテキストファイルにし、エクセルを開き
ファイル→開く→txtにしたファイルを指定してくだし。
テキストファイルウィザードが開きます。
カンマやタブなどのを選択→カンマを選択→3つめのデータ形式の選択で
おかしくなった列のデータ形式を文字列にして下さい。
これで開いた時には0ではなく000で表示されると思います。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報