重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Excel2003を使用しています。以下のリストがあるとします。

01-100-10
01-100-1
01-100-11
01-100-11-
01-100-11-
01-100-11-
01-100-11-
01-100-11
01-100-11
01-100-11
01-100-1
01-100-12-
01-100-1-
01-100-13
01-100-13

このような文字列がずらーっと並んでいまして、その中で文字列一番右のハイフンを削除したいのです。一番右がハイフンでないものはそのままです。

ハイフンを削除するのは置換で出来ますが、それだと真ん中のハイフンも消えてしまいます。

Excelの関数はあまり得意でないので、いろいろ考えたのですがよくわかりませんでした。ご存知の方、ご教授願えないでしょうか。よろしくお願いいたします。

A 回答 (5件)

一番右が必ずハイフン(-)なら、


=IF(RIGHT(A1,1)="-",LEFT(A1,LEN(A1)-1),A1)
でしょうか。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
皆様に教えていただいた関数すべて試してみましたが、全部上手くいきました。本当に助かりました。どうもありがとうございます。

ベストアンサーは最初にご回答いただいた方とさせていただきます。皆様本当にありがとうございました。

お礼日時:2011/03/10 13:11

実際の文字列のパターンが質問文の通りで、3つ目のハイフンのみをなくしたいのであれば、



文字列がA列に入っているとして、B列に

=SUBSTITUTE(A1,"-","",3)

で下にコピーで如何でしょうか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
皆様に教えていただいた関数すべて試してみましたが、全部上手くいきました。本当に助かりました。どうもありがとうございます。

ベストアンサーは最初にご回答いただいた方とさせていただきます。皆様本当にありがとうございました。

お礼日時:2011/03/10 13:09

方法はいくつかあるけど、一番単純なのは隣の列で


=IF(RIGHT(A1,1)="-",LEFT(A1,LEN(A1)-1),A1)
とした結果をコピーして値として貼り付け
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
皆様に教えていただいた関数すべて試してみましたが、全部上手くいきました。本当に助かりました。どうもありがとうございます。

ベストアンサーは最初にご回答いただいた方とさせていただきます。皆様本当にありがとうございました。

お礼日時:2011/03/10 13:10

=LEFT(A1,LEN(A1)-(RIGHT(A1,1)="-"))

    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
皆様に教えていただいた関数すべて試してみましたが、全部上手くいきました。本当に助かりました。どうもありがとうございます。

ベストアンサーは最初にご回答いただいた方とさせていただきます。皆様本当にありがとうございました。

お礼日時:2011/03/10 13:10

これでどうでしょう。



IF(RIGHT(A1,1)="-",MID(A1,1,LEN(A1)-1),A1)

関数内のA1はカラムですので用途に応じて変更して下さい。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
皆様に教えていただいた関数すべて試してみましたが、全部上手くいきました。本当に助かりました。どうもありがとうございます。

ベストアンサーは最初にご回答いただいた方とさせていただきます。皆様本当にありがとうございました。

お礼日時:2011/03/10 13:10

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