新生活を充実させるための「こだわり」を取材!!

エクセルにデータをエクスポートするソフトがあります。
このデータをさらに処理するのですが、ある列にはデータがない場合「ー」(ハイフン)が出力されます。
これにある関数を施したいのですが、「ー」では処理できないため、これを「0」にする必要があります。
そのため、「ー」を「0」に置換するという方法を用いたのですが、そうしますと負の値「-」(マイナス)の「ー」も置換されて正の数になってしまうという弊害が発生します。

この、「ハイフンは置換するがマイナスはしない」ということができるのでしょうか。
どなたかご存じの方がいらっしゃいましたら、ご教授くださると幸いです。
どうぞ宜しくお願い申し上げます。

教えて!goo グレード

A 回答 (4件)

こんにちは!


横からお邪魔します。

VBAではどうでしょうか?
画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub test() 'この行から
Dim c As Range
For Each c In ActiveSheet.UsedRange
If StrConv(c, vbNarrow) = "-" Then
c = 0
End If
Next c
End Sub 'この行まで

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0
この回答へのお礼

大変高度な内容(私にとって)をわかりやすくご回答いただきまして、ありがとうございました。
とても参考になりました。このたびは、本当にありがとうございました。

お礼日時:2012/09/17 11:45

「-」のセルを「未入力」にしたいなら、No.1さんの方法で。

「0」にしたいなら、No.2さんの方法で。どちらもアリです。ベストアンサーは辞退します。

なおNo.2さんの方法のうち数式によるものについては、いろいろな数式が書けるのですが、他にも例えば、次式でもいいです。

=if(a1="-",,a1)

「-」は、半角モードでタイプしてください。
    • good
    • 0
この回答へのお礼

ベストアンサーをご辞退いただいてまでものアドバイス、とても痛み入ります。
さまざま有益な情報をいただきまして、大変ありがとうございました。篤く御礼申し上げます。

お礼日時:2012/09/17 11:46

「-」を「0」に置換するのではなく、「-0」に置換されてみては如何でしょうか?



 尤も、その様な、「手作業による置換」等を行わずとも、途中に「-」が存在したままであっても、処理出来るように関数を組むのが、Excelの本来の使い方ではないかと思います。
 例えば、

=A1+1

という関数ですと、A1が「-」の場合には#VALUE!エラーとなりますが、IF関数やISNUMBER関数と組み合わせて

=IF(ISNUMBER(A1),A1,0)+1

等の様にしますと、A1セルに「-」を始めとする文字列が入力されていた場合には、態々置換しなくとも、A1セルの値を0に置換した場合と、同じ結果が得られます。
 尚、

>これにある関数を施したいのですが

と仰っておられる関数がどの様な関数であるのかによって、IF関数を使ったエラーの回避方法が異なってくる場合がありますので、IF関数を使ったエラーの回避についての具体的な方法に関しては、どの様な関数なのかを御教え頂かない事には、回答する事が出来ません。
    • good
    • 0
この回答へのお礼

ご丁寧なご回答をいただきまして、ありがとうございました。
今回の質問内容だけでなく、深くエクセルを理解するのに大変参考になりました。
このたびは、どうもありがとうございました。

お礼日時:2012/09/17 11:47

置換のダイアログのオプションを開き、完全に同一な時に置換させます。

「エクセルで「ー」(ハイフン)と「ー」(マ」の回答画像1
    • good
    • 0
この回答へのお礼

ありがとうございました。内容的には頂いたご回答がまったくそのとおりでベストでした。こんなことも知らないのではいけませんね。
いずれにしてましても大変助かりました。ありがとうございました!

お礼日時:2012/09/17 11:43

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

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

教えて!goo グレード

人気Q&Aランキング