今だけ人気マンガ100円レンタル特集♪

エクセルの""の削除方法を教えてください。

エクセルのB列に、関数で=IF(A1=2,"おはよう","")
A列に沢山入力されており、A列に2がないため
"おはよう"ではなく、""が沢山あります。

A列の結果を、C列に値でコピー&ペーストしているのですが、
C列に入っている""を一度に削除にはどうしたら良いでしょうか。

教えてください。

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

A 回答 (4件)

横から失礼。


列単位で良い場合は、対象の列を1列ずつ列全体選択して
[データ]-[区切り位置]で[完了]クリック。
(文字列データが変わってしまう場合は、ウィザードの3/3でデータ形式を指定する必要があります)

または対象範囲を選択して、[ctrl]+[h]の[置換]を使えば良いです。
「検索する文字列」には何も入力しないで
「置換後の文字列」に # とか、他に使われていない文字を入れて
「セル内容が完全に同一であるもの...」にチェックを入れて[すべて置換]。
その後「検索する文字列」と「置換後の文字列」を入れ替えて再度[すべて置換]。
    • good
    • 1
この回答へのお礼

ありがとうございます!!
できました。

お礼日時:2010/07/09 17:25

> A列の結果を、C列に値でコピー&ペーストしているのですが、



B列をコピーしてC列に「形式を選択して貼り付け」で値のみ貼り付けにしている……で、よろしいでしょうか?
そうすると、一見ブランクなセルにも""(空文字)が確かに入ります。
これはセル式では消せません、マクロを使っても良いのでしたら以下の様に、空文字が入っているセルをClearContentsすることでブランクが入ります(実際には空文字でもブランクでも構わずClearContentsしています)。

Sub Sample()
  For i = 1 To 100
    If Range("C" & i).Value = "" Then Range("C" & i).ClearContents
  Next i
End Sub

この回答への補足

質問の日本語がいけてませんでした。スイマセン。
マクロ以外で対応したいです。。。。なんとかなりませんかorz

【質問文訂正】
エクセルのB1セルに関数で 「=IF(A1=2,"おはよう","")」とあります。
A1は2ではないため、関数は""を返しています。

そして、B1セルの関数をC1セルに
形式を選択して値で貼り付けています。

なんで、C1セルには""が入力されたかたち(表示上は空白)ですが、
この目に見えない""を削除にはどうしたら良いでしょうか。

同様のセルが沢山あるので、一度に削除する方法を知りたいです。

教えてください。

補足日時:2010/07/09 15:00
    • good
    • 0

>エクセルのB列に、・・・【中略】・・・、""が沢山あります。



 そんなことないはず、単純な空白しかないはず。

>A列の結果を、C列に値でコピー&ペーストしているのですが、

ここには、「A列に2がないため」のように色々な値があるはず、

>C列に入っている""を一度に削除にはどうしたら良いでしょうか。
 よって、ありえない。

この回答への補足

日本語がいけてませんでした。すいません。
おっしゃる通りです。

【質問文訂正】
エクセルのB1セルに関数で 「=IF(A1=2,"おはよう","")」とあります。
A1は2ではないため、関数は""を返しています。

そして、B1セルの関数をC1セルに
形式を選択して値で貼り付けています。

なんで、C1セルには""が入力されたかたち(表示上は空白)ですが、
この目に見えない""を削除にはどうしたら良いでしょうか。

同様のセルが沢山あるので、一度に削除する方法を知りたいです。

教えてください。

補足日時:2010/07/09 15:01
    • good
    • 0

こんにちは!


参考になるかどうか判りませんが・・・

質問の数式ですと、B列には「おはよう」か「空白」のどちらかが表示されると思うのですが、

質問どおりに文字列にダブルクォーテーションが入っている場合それを無くして表示させる方法です。

↓の画像でA列にダブルクォーテーションマークが入った文字列があるとします。
それをB列にダブルクォーテーションを無くして表示しています。

B1セルに
=SUBSTITUTE(A1,"""","")

という数式を入れオートフィルで下へコピーしています。

SUBSTITUTE関数の「検索文字列」の部分にダブルクォーテーションを4個続けて入力
「置換文字列」の欄に空白(ダブルクォーテーションを続けて2個入力)すれば可能みたいですね。

以上、参考になれば良いのですが
外していたらごめんなさいね。m(__)m
「エクセルの""の削除方法を教えてください」の回答画像1
    • good
    • 2

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

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

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

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

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

Q文字列に含まれているダブルクォーテーション( ")を置換する

文字列に含まれているダブルクォーテーションを除きたいのですが、これをSubstitute関数で置換しようとしてもうまくいきません。ダブルクォーテーションが文字列を指定するために使われるせいだと思うのですが、"を文字列として指定する方法はあるのでしょうか?
よろしくお願いします。

Aベストアンサー

=SUBSTITUTE(A1,CHAR(34),"a")

のように、CHAR(34)で表せば大丈夫だと思います。

Qカンマ区切りのCSVファイルから""を削除したい

初めて質問いたします

以下のような形式のCSVファイルがあります
例)
品名,数量,単価,金額
"りんご",1,150,150
"バナナ",10,200,2000
"メロン","1,000","2,000","2,000,000"

上記のように、品名にはダブルクォーテションがつき、
数量、単価、金額については桁区切りのカンマが発生する場合、ダブルクォーテーションで囲まれています

上記のようなデータを
りんご,1,150,150
バナナ,10,200,2000
メロン,1000,2000,2000000
のように別ファイルへ出力するにはどのようにすればよいでしょうか?

プログラムでの処理で、WSHを使ったものを教えていただけますと、幸いです
よろしくお願いいたします

Aベストアンサー

もう仕事は終わってしまったかもしれませんが、(^^ゞ
VBS で作ってみました。
対象CSVファイルのあるフォルダに保存して実行してみてください。
_NewFilesフォルダに保存されます。
※対象外のCSVファイルが有っても処理してしまいます

Dim oSh
Dim oFs
Dim BaseFolder
Dim newFolder
Dim f

Set oSh = CreateObject("Wscript.Shell")
Set oFs = CreateObject("Scripting.FilesystemObject")
Set BaseFolder = oFs.getFolder(oSh.currentDirectory)

newFolder = BaseFolder.Path & "\" & "_NewFiles"

If oFs.folderExists(newFolder) = False Then
oFs.createFolder (newFolder)
End If

For Each f In BaseFolder.Files
If oFs.GetExtensionName(f) = "csv" Then
Call changeIt(f.Path, newFolder)
End If
Next

MsgBox newFolder & " フォルダ内を検証"


Sub changeIt(orgFname, trgFolder)
Dim oFs
Dim orgF
Dim newF
Dim newFname
Dim buF
Dim oReg

Dim Mcol
Dim M
Dim M1, M2
Const forReading = 1
Const forWriting = 2

Set oFs = CreateObject("Scripting.fileSystemObject")
Set oReg = CreateObject("VBScript.RegExp")
Set orgF = oFs.getFile(orgFname).openAsTextStream(forReading)

newFname = trgFolder & "\" & oFs.getBaseName(orgFname) & "_New.csv"
oFs.CreateTextFile (newFname)
Set newF = oFs.getFile(newFname).openAsTextStream(forWriting)

With oReg
.Pattern = """.*?"""
.IgnoreCase = False
.Global = True
End With

Do Until orgF.atendofstream
buF = orgF.readline
Set Mcol = oReg.Execute(buF)

For Each M In Mcol
M1 = Replace(M.Value, ",", "")
buF = Replace(buF, M.Value, M1)
M2 = Replace(M1, Chr(34), "")
buF = Replace(buF, M1, M2)
Next

newF.WriteLine buF
Loop

orgF.Close: newF.Close
Set Mcol = Nothing
Set oReg = Nothing

End Sub

もう仕事は終わってしまったかもしれませんが、(^^ゞ
VBS で作ってみました。
対象CSVファイルのあるフォルダに保存して実行してみてください。
_NewFilesフォルダに保存されます。
※対象外のCSVファイルが有っても処理してしまいます

Dim oSh
Dim oFs
Dim BaseFolder
Dim newFolder
Dim f

Set oSh = CreateObject("Wscript.Shell")
Set oFs = CreateObject("Scripting.FilesystemObject")
Set BaseFolder = oFs.getFolder(oSh.currentDirectory)

newFolder = Bas...続きを読む

QExcelに、ダブルクォーテーションで始まる文字列を貼り付けると、ダブルクォーテーションが消えること

Excelで、ダブルクォーテーションで始まる文字列をセルに貼り付けたときに
ダブルクォーテーションが消えるのですが、
Excelってもともと(標凖的な動作として)そういうものですか。

(F2キーを押すなりして)編集状態にして貼り付ければ、ダブルクォーテーションのついたまま貼り付くのですが、
私はセルを選択して貼り付けただけでも大丈夫だと思っていました。

「文字列を貼り付ける」というのは、例えばテキストエディタ上にあるものを手作業でコピーして貼り付ける、ということです。

「ダブルクォーテーションで始まる文字列」と言っても、
ダブルクォーテーションが3つ以上あったときに消えるのは、最初の1組(2つ)ですね。
しかし、
"AAAA"""BBBB
のような場合には、なぜか
AAAA"BBBB
になるのです。
(ちなみに、この文字列を、質問直前の質問内容確認の画面(IE)でコピーしてExcelに貼り付けたときは、違います。)
どのような規則に基づいてダブルクォーテーションが消えるのかも疑問です。

このような仕様になっている理由はなんでしょうか。


また、Excelに文字列を貼り付けるという操作を頻繁に行うため、
できれば、編集状態にしなくても、
セルを選択して貼り付けするだけで、そのままダブルクォーテーションも貼り付いてほしいのですが、
そのためにはどうすればよいのでしょうか。

「セルの書式設定」で、表示形式を文字列にすればよいと思ったのですが、だめでした。

セルには文字列を入れるだけで、数式を入れたりしません。
(数式としては扱ってほしくない、という意味です。)


Excelは2000です。

Excelで、ダブルクォーテーションで始まる文字列をセルに貼り付けたときに
ダブルクォーテーションが消えるのですが、
Excelってもともと(標凖的な動作として)そういうものですか。

(F2キーを押すなりして)編集状態にして貼り付ければ、ダブルクォーテーションのついたまま貼り付くのですが、
私はセルを選択して貼り付けただけでも大丈夫だと思っていました。

「文字列を貼り付ける」というのは、例えばテキストエディタ上にあるものを手作業でコピーして貼り付ける、ということです。

「ダブル...続きを読む

Aベストアンサー

N0.2です。

どうせ置換するのなら、
テキストエディタで "→@ しておいて、Excel貼付後 @→" に戻す
という方法はどうでしょうか。

例)最初に "AAAA"""BBBBB → @AAAA@@@BBBBB
  Excel貼付後に @AAAA@@@BBBBB → "AAAA"""BBBBB

QExcelの保存で" "を付けないように保存できる?

Excel-97を使用してます。ブックで作成したファイルを名前を付けて保存する時にタブ区切り形式を選んだ時,文字列でカンマ(,)が含まれたセルはダブルコーテーション(")でくくられてしまいます。

セル:6,7,8ABCD とある場合 "6,7,8ABCD"となってしまいます。

これをダブルコーテーションを付けないように保存する方法を教えてください。

セル:6,7,8ABCD とある場合 タブ区切りで保存されたファイルには 6,7,8ABCD となってほしいのです。

宜しくお願いします。

Aベストアンサー

EXCEL の保存機能では必ず" "が付いてしまいますね。

以下の代替案ではだめでしょうか?

1. 保存する前に、EXCELで「,」を「,(全角)」などに置換し、保存。
保存した後で、秀丸等のテキストエディタで「,(全角)」→「,」に置換。

2. 保存した後で、秀丸等のテキストエディタで
「"文字列"」 → 「文字列」 に置換。
正規表現を使えばできるとおもいます。

3. VBAでマクロを組む(^^;
保存機能をそのままマクロで実現する形になるかと思います。
手間の割りにリターンが少ないかも…。

検討してみてください。

Q文字列として"(ダブルコーテーション)を表示させる方法

こんにちは。文字列として、ダブルコーテーションを表示させるには、どうすればよいのか教えてください。m(__)m


例えば、
<font size="2">あいうえお</font>

というタグの「あいうえお」の部分が、セルA1にあった場合、

="<font size="2">"&A1&"</font>"という表示にしたいのです。

"2"のダブルコーテーションも文字列として表示させるには、どうすればよろしいのでしょうか。

教えてください。よろしくお願い致します。

Aベストアンサー

こんにちは~

表示形式は 「標準」 のままで、
ダブルコーテーションを、ダブルコーテーションで囲んでください。

""2""

="<font size=""2"">"&A1&"</font>"

としてみてください。

QExcel 数値の前の「 ' 」を一括削除したい

取引先から来るデーターで
'400783108700 と入力され書式は文字列となっています。

この数値は海外のJANコードナンバーで実際は
0400783108700 が正です

バーコード作成ソフトを使う時に効率が悪くて困っています。取引先にも改善依頼をお願いしておりますが、なかなか進みません。10点ぐらいなら一つ一つ変更するのですが、50点~100点位あると・・・

複数のセルの「 ' 」(アポストロフィー)を一括で削除する方法、または0に置き換える方法があればお教えいただけないでしょうか。編集→置換では出来ませんでした。「 ' 」がデータ上は無いことになっていて読み込めません。
どうぞ宜しくお願いします。

Aベストアンサー

★シングルクォートを削除したい:Excel エクセルの使い方-入力/編集
http://www.relief.jp/itnote/archives/000321.php
では?

Qダブルクォーテーションの削除(置換)

$a = qq/"aaaaaa","bbbbb"/;
print $a;
→ "aaaaa","bbbbb"

としたときの、変数 $a の中にある
ダブルクォーテーションを削除したいのですが、

$a =~ s/"//;
では何も変化が無くて、

$a =~ tr/"/ /;
では半角スペースに置換できるのですが、

$a =~ tr/"//;
では何も変化がありません。

上手く出来る方法はどの様な方法でしょうか?
教えていただければありがたいです。

よろしくお願いいたします。

Aベストアンサー

$a =~ s/"//;
とした時には
→aaaaa","bbbbb"
という風に一つ目の「"」だけは無くなっていませんか?
$a =~ s/"//g;
とすれば全ての「"」を削除できます。

また、tr///を使う時には、
$a =~ tr/"//d;
とすれば変換先リストに無い文字を削除できます・

参考URL:http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/pe_k08.htm

QExcelで""で囲む方法

Excelでセルの値をダブルクォーテーションで囲む方法を教えてください.
例えば,B3セルの値をA3セルでダブルクォーテーションで囲みながら表示したいと思っています.

Aベストアンサー

A1
に asd とあるとき
=""""&A1&""""

B1は "asd"
となりました。
123 の時は
"123"

Q【VBA】ExcelマクロでCSVファイルに保存したデータが""で囲まれてしまう

添付図のような、Excel2003で作成した表内のデータを
CSVで保存するマクロを作成したのですが、
図のように、CSVファイルに「""」で値が囲まれた状態で、
保存されてしまいます。

下記にマクロを記載しますので、
どうすれば文字列が「""」で囲まれずに、
カンマ区切りだけのデータで出力されるのか、
ご存知の方おられましたら、ご教示お願い致します。

Sub csv保存()
Dim フォルダ名 As String
Dim パス名 As String
Dim ファイル名 As String
Dim データ As Variant
Dim 行数 As Long, 列数 As Integer
Dim i As Integer, j As Long, k As Long

ファイル名 = "test.csv"
フォルダ名 = "csv"
パス名 = ActiveWorkbook.Path & "\" & _
フォルダ名

'csvフォルダが存在しなければ作成する
If Dir(パス名, vbDirectory) = "" Then
MkDir パス名
End If
ChDir パス名

Open ファイル名 For Output As #1

For i = 1 To Worksheets.Count
Worksheets(i).Activate
Worksheets(i).Cells(1, 1).Select
ActiveCell.CurrentRegion.Select
行数 = Selection.Rows.Count
列数 = Selection.Columns.Count

For j = 1 To 行数
For k = 1 To 列数 - 1
データ = Selection.Cells(j, k) _
.Value
Write #1, データ;
Next k
Write #1, Selection.Cells(j, 列数) _
.Value
Next j
Next i
Close #1
End Sub

添付図のような、Excel2003で作成した表内のデータを
CSVで保存するマクロを作成したのですが、
図のように、CSVファイルに「""」で値が囲まれた状態で、
保存されてしまいます。

下記にマクロを記載しますので、
どうすれば文字列が「""」で囲まれずに、
カンマ区切りだけのデータで出力されるのか、
ご存知の方おられましたら、ご教示お願い致します。

Sub csv保存()
Dim フォルダ名 As String
Dim パス名 As String
Dim ファイル名 As String
Dim データ As Variant
Dim ...続きを読む

Aベストアンサー

Write # は文字列を""で囲んで出力する仕様になっています。
そのまま出力したければ、Print #を利用すればよろしいかと。
ただし、Printの場合は区切り文字(カンマ)を自動で出力してくれませんので、併せて出力する必要があります。

For j = 1 To 行数
  For k = 1 To 列数 - 1
    データ = Selection.Cells(j, k) .Value
    Print #1, データ; ",";
  Next k
  Print #1, Selection.Cells(j, 列数).Value
Next j

なお、いらぬおせっかいですが、ドライブが複数ある環境下だと、
 ChDir パス名
だけでは必ずしもcvsフォルダ内に、ファイルが作成されるとは限りません。
 Open パス名 & "\" & ファイル名 For Output As #1
のように、フルパスで指定しておいた方が確実かと…

Qエクセルで文字列をtxtファイルに変換すると""がつく

テキストファイルを文字列の引用符は「なし」でエクセルの文字列で開き、加工して再びテキストファイルで保存すると、部分的に文字列に引用符("")がついてしまうのですが、この""(ダブルクォーテーション)をつけずにテキストで保存するにはどうしたらよいのでしょうか。

Aベストアンサー

 極めて単純に、Ctrl+Aで全部選択して、Ctrl+Cでコピーして、メモ帳などのテキストエディタに貼り付けるとよいのでは??


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

人気Q&Aランキング