エクセルをcsvで保存する方法と値の詰め方について

このQ&Aのポイント
  • エクセル2007でcsvテキスト形式で保存する方法と値の詰め方について教えてください。
  • エクセルsheet1に値を入力し、エクセルsheet2のA列に値を並び替える際にセルにスペースが入らないようにする方法を教えてください。
  • 初心者にも分かりやすい説明をお願いします。
回答を見る
  • ベストアンサー

エクセルをcsvで保存する

こんにちは、是非教えて下さい。 エクセル2007を使用しています。 このファイルはcsvテキスト形式で提出しなければならないのですが、 エクセルsheet1にA列に値を入力して エクセルsheet2のA列に並び替えます。 この項目には前スペース右詰と指定があります。 エクセルsheet2に並び替える際にセルA列に =REPT(" ",12-LEN(sheet1!A1))&sheet1!A1 を入れました(A2、A3、、、と続きます) csvに保存して確認(メモ帳)したら、 エクセルsheet1で値を入力してない所には(下の図の「 _ 」)スペースが入ってしまいました!! (エクセル)        A 1 123456 2 (未入力) (メモ帳)                   ,______123456,,(現在) ,____________,,(現在)             ↓ ,______123456,,(現在と同じ) ,,,(理想) 上の(理想)のように詰めたいのですが よい数式を教えて下さい。 初心者なので説明をいれて頂けると少しは理解できそうです。 よろしくお願いしますm(__)m

質問者が選んだベストアンサー

  • ベストアンサー
  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.1

=REPT(" ",12-LEN(sheet1!A1))&sheet1!A1 ↓ =IF(sheet1!A1="","",REPT(" ",12-LEN(sheet1!A1))&sheet1!A1)

oHaNa67
質問者

お礼

ありがとうございます。 理想のようになりました。 感謝します。

その他の回答 (1)

noname#217196
noname#217196
回答No.2

もしA1の長さが0でなければ、という条件を追加したらいいのでは。

oHaNa67
質問者

お礼

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

関連するQ&A

  • Excelのcsv保存について

    別ブックのデータを参照して、csvで保存するためのブックを作ったのですが、参照のための関数が入力されているセルもcsvにnullで出力されてしまいます。 参照元.xls  A B C D E 1 あ い う え お 2 か き く け こ 3 さ し す せ そ 4 5 csv出力用.xls A1~E5には作業の都合上、 =IF([参照元.xls]Sheet1!A1="","",[参照元.xls]Sheet1!A1) のような関数を入れて参照しています。  A B C D E 1 あ い う え お 2 か き く け こ 3 さ し す せ そ 4 5 これをcsvで保存すると、 あ,い,う,え,お か,き,く,け,こ さ,し,す,せ,そ ,,,, ,,,, と、データは未入力だけど関数が入っている部分まで保存されてしまいます。 これを、 あ,い,う,え,お か,き,く,け,こ さ,し,す,せ,そ ここまでで保存できるような方法、 もしくは関数などはありませんでしょうか。 csv出力用のブックでは一括半角置換や全角置換、 誤入力されたハイフンやスペースの削除などをおこなっているので、 できればこの参照形式は崩したくありません。 わかるかたいらっしゃいましたらアドバイスをお願いします。

  • ExcelからCSV出力して読込むと削除変換される

      Excelのブック1のシートに入力されたデータを 一度、CSVファイルに出力して このCSVファイルを別のツール(perlなど)で変換して この変換されたCSVファイルを再び 別のExcelのブック2のシートに読み込ませたいのですが Excelのブック1から出力したCSVファイルを 別のツールで変換しなくてもそのまま Excelのブック2のシートに読み込ませた時点で 文字の一部が消えたり数式が値になったりしてしまっています。 具体的には、 セルの先頭の ' (シングルクォーテーション) が消えてしまったり、 1つ足りなくなったりしています。また、 先頭の =1+1 などは、(表示上) 2になったりしてしまっています。 なお、セルの書式設定が標準だと、先頭の @ の後に続けて入力すると 正しく入力できませんが、セルの書式設定を文字列にすると、 この @ の問題は起きなくなりました。でも、セルの書式設定を文字列にしても ' (シングルクォーテーション) や数式が計算結果になる問題は 解決していません。 (問1) 削除されたり変換されてしまうのは     ・先頭の ' (シングルクォーテーション)     ・先頭の =     ・先頭の @    の3つのケースだけでしょうか。    このほかにもありましたら教えてください。 (問2) 先頭の =1+1 の場合ですが    セルの書式設定が標準の状態で =1+1 と入力すると    数式バーには =1+1 と表示されていて    セルの書式設定が標準だと2と表示されていてその後    セルの書式設定を文字列にしても2と表示されています。    逆に、    セルの書式設定が文字列の状態で =1+1 と入力すると    数式バーには =1+1 と表示されていて    セルの書式設定が文字列だと =1+1 と表示されていてその後    セルの書式設定を標準にしても =1+1 と表示されています。    いずれも入力したデータは同じなのに    入力時点での表示形式で表示内容が固定されてしまっていて    その後、表示形式を変更しても表示内容が反映されていない    ように感じるのですが何が起きているのでしょうか。 (問3) 前述の理由により、CSVファイルをセルの書式設定が文字列    の状態で読み込ませることはできるのでしょうか。    (後でセルの書式設定を文字列に変更しても =1+1 と表示されないので) (問4) Excelのブック1のシートのセルには     ユーザーが好き勝手な文字や数値や記号を入力します。     何を入力されても変化してしまわないようにすることはできるでしょうか。      ( 頭に ' を付けることをユーザーに強要するとか、       事前にセルの頭に ' を入力しておくなどはなしです) (問5) もし、できない場合、Excelのブック1のシートの各セルの先頭に     ' (シングルクォーテーション) や = から始まる数式を    入力することができないように制限をかけることはできるのでしょうか。 よろしくお願いします。(Windows7,Excel2010)

  • エクセルで特定の列だけを抽出してcsvで保存したい

    エクセルで特定の列だけを抽出してcsvで保存したい 例えば、A列:住所、B列:氏名、C列:電話番号といった3つの列がありそれぞれデータがはいっているとします(図参照)。 そしてcsvとして書き出すときにB列とC列だけを書き出したい場合どのようにすればよいでしょうか。 この場合、書き出すときにA列だけを一旦削除、などということはしたくないです。 また1列目のタイトルも書き出さないようにしたいです。 ご教授よろしくお願いいたします。

  • Excel:値のある行だけをcsv保存したい

    エクセル(2003、2007)でcsvデータで保存をするマクロを作る際、 「式」ではなく、「値」がある行だけ書き出したいと考えております。 例えば図のようにsheet1に表があり、それを元にsheet2に データを転記する場合、sheet2にはそれぞれ転記する為の「式」 が入る事になると思います。 【=IF(Sheet1!A10="","",Sheet1!A10)】など このままマクロでcsvとして吐き出した場合、「式」が入っている行が 全て書き出されてしまうのですが、あくまで「値」が入っている行だけ csvとして抜き出したいです。 ※なお、csv書きだし自体は以下のサイトを利用させて頂いております。   ttp://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_050.html お手数ですが何か手法があれば、ご教授頂けると助かります。 宜しくお願い致します。

  • CSVファイルの取り込みについて

    CSV取り込み方法について 教えていただきたくお願いいたします。 エクセルのマクロ・VBAの組み方について デスクトップ上の000という名前のCSVファイルを、作業しているエクセルファイルのLoadという名前のシートに貼り付けたいと思っています。 CSVファイルはエクセルで開くと1行に11列の項目が展開されています。 貼り付ける項目はこのようになります。 (CSV) →(エクセルのLoadシート) 1列目(A行)→B行へ 2列目   →C行へ 3列目   →D行へ 4列目   →E行へ 5列目   →F行へ 9列目   →G行へ 10列目  →H行へ 11列目  →I行へ (6.7.8列目は使いません) 最後にLoadのシートのA行に”=B&E”とい式を入力したいと思っています。 まだ初心者なので勉強中なのですが、仕事上急遽必要になりましたのでお願いいたします。

  • エクセルのcsv保存で。。

    前と同じような質問ですみません。。。 エクセルのSheet5をcsv形式で保存する際、 名前を付けて保存のダイアログを表示させて、 ファイルの名前を常に「bonaplus.csv」と 既定値で表示させておくようなマクロは できないでしょうか? ※bonaplusの後には作成日付を入力します。 ※csvファイルを作成した後に元のエクセルファイルの  保存になります。

  • エクセルの質問です。

    エクセルの質問です。 いつもお世話になっています。質問させて下さい。基本的なことかもしれませんが、、すみません。 例えば一つのセル内に 6-3 と入力すると自動的に日付になります。 6+3としても表示形式が変わったりはしません。 さらに深い質問なのですが、 一つのセルに   7/4(日)   となっているものをLEN関数で文字列の文字数を返すと  答えは当然6が返ります。  しかし、その6になった値に関して -3 を付け数式的には  =LEN(A1)-3 とすると、答えは 1/3 となります。 LEN関数で同じ6が返るように仮に AAAAAA として、 -3をつけたし =LEN(A1)-3 としても、答えは 3にしかなりません。勝手に表示形式は変わりません。 勝手に表示形式が日付に変わるのはなぜなのでしょうか?

  • エクセル2003の使い方について

    エクセル2003の使い方について エクセル2003の使い方で教えていただきたいことがあります。 例えば、Sheet1のA1セルに数式を入力してある値がでてきました。 その値を別のsheet2のB1セル、sheet3のC1セル、sheet4のD1セルでも使用します。 これら別々のsheetではA1の値を使って別の計算をするため、 A1の値が変わるたびに変更になった値を手入力するのではなく、A1セルとリンクさせることはできますか? よろしくお願いいたします。

  • 【Excel】 csvの作成時、空白セルにもカンマ

    こんにちは A列のA10まで、に値が入ります。 B列は、B1=IF(A1="","",A1) として、B10までフィルしました。 A1からA5までに1、2、3、4、5と入力し、A6からA10は空白にします。 B1からB5までは、1、2、3、4、5が表示され、 B6からB10までは空白です。 このSheetを、csvで保存し、テキストで開きますと 1,1 2,2 3,3 4,4 5,5 , , , , , , となります。 この、6行から10行の「,」がないcsvを出力したいのですが、 元のSheetの式はどうしたらよいでしょうか。 Excel2007です。 宜しくお願いします。

  • エクセル:VBAで自動的にCSV形式で保存について

    複数のシートからなるエクセルブックから、決まった一つのシートを CSV形式で保存するマクロを作成しております。 その際、CSV化するシートは他のシートの値を参照し、数値が""、 もしくは"0"の場合は、表示しないとする数式が1000行まであります。 これは、CSVで保存した際に、無用なデータを含めないようにと 考えたものですが、下記VBAを作りCSV化し保存したファイルは、確かに 数値がある行のみ表示しているものの、データ量が重くなってしまいます。 Application.DisplayAlerts = False Application.Dialogs(xlDialogSaveAs).Show arg1:=MyFile, arg2:=6 この作成されたCSVをあらためて、「名前を付けて保存」でCSVで保存し、 「~には、CSV(カンマ区切り)と互換性のない機能が含まれている可能性 があります。この形式で保存しますか?・・・」の所で、「はい」を選択 すると、データ量が大変少ない量で保存できます。 おそらく、マクロで作成したCSVは、その「互換性のない機能」が含まれて いるのであろうと思いますが、必要としているのは値のデータのみです。 この「互換性のない機能」を省いてCSVで保存する方法をどなたか教えて いただけないでしょうか? 分かりにくい文章で申し訳ありませんが宜しくお願い致します。

専門家に質問してみよう