- ベストアンサー
エクセルで「ー」(ハイフン)と「ー」(マイナス)を
エクセルにデータをエクスポートするソフトがあります。 このデータをさらに処理するのですが、ある列にはデータがない場合「ー」(ハイフン)が出力されます。 これにある関数を施したいのですが、「ー」では処理できないため、これを「0」にする必要があります。 そのため、「ー」を「0」に置換するという方法を用いたのですが、そうしますと負の値「-」(マイナス)の「ー」も置換されて正の数になってしまうという弊害が発生します。 この、「ハイフンは置換するがマイナスはしない」ということができるのでしょうか。 どなたかご存じの方がいらっしゃいましたら、ご教授くださると幸いです。 どうぞ宜しくお願い申し上げます。
- みんなの回答 (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
その他の回答 (3)
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
「-」のセルを「未入力」にしたいなら、No.1さんの方法で。「0」にしたいなら、No.2さんの方法で。どちらもアリです。ベストアンサーは辞退します。 なおNo.2さんの方法のうち数式によるものについては、いろいろな数式が書けるのですが、他にも例えば、次式でもいいです。 =if(a1="-",,a1) 「-」は、半角モードでタイプしてください。
お礼
ベストアンサーをご辞退いただいてまでものアドバイス、とても痛み入ります。 さまざま有益な情報をいただきまして、大変ありがとうございました。篤く御礼申し上げます。
- kagakusuki
- ベストアンサー率51% (2610/5101)
「-」を「0」に置換するのではなく、「-0」に置換されてみては如何でしょうか? 尤も、その様な、「手作業による置換」等を行わずとも、途中に「-」が存在したままであっても、処理出来るように関数を組むのが、Excelの本来の使い方ではないかと思います。 例えば、 =A1+1 という関数ですと、A1が「-」の場合には#VALUE!エラーとなりますが、IF関数やISNUMBER関数と組み合わせて =IF(ISNUMBER(A1),A1,0)+1 等の様にしますと、A1セルに「-」を始めとする文字列が入力されていた場合には、態々置換しなくとも、A1セルの値を0に置換した場合と、同じ結果が得られます。 尚、 >これにある関数を施したいのですが と仰っておられる関数がどの様な関数であるのかによって、IF関数を使ったエラーの回避方法が異なってくる場合がありますので、IF関数を使ったエラーの回避についての具体的な方法に関しては、どの様な関数なのかを御教え頂かない事には、回答する事が出来ません。
お礼
ご丁寧なご回答をいただきまして、ありがとうございました。 今回の質問内容だけでなく、深くエクセルを理解するのに大変参考になりました。 このたびは、どうもありがとうございました。
- keithin
- ベストアンサー率66% (5278/7941)
お礼
大変高度な内容(私にとって)をわかりやすくご回答いただきまして、ありがとうございました。 とても参考になりました。このたびは、本当にありがとうございました。