• ベストアンサー

文字列の途中の空白を除く、また、A列の桁数に応じてB列に異なる値を記入する方法

 初心者です。エクセル2000を使います。年は若くないです。  次のことで困っています。データが多いため、ひとつひとつを手で訂正できないのです。 1.セル内の文字列に含まれる空白(スペース)を除く方法   例えば、 東 いろは→→東いろは   空白を置換して除こうとしましたがうまくいきませんでした 2.A列の数字の桁数に応じて、B列に異なる数字を入れる方法。以前に教えていただいた方法+α が必要なのです。   A列の数字が 4桁 なら B列に 01を入力   A列の数字が 6桁 なら B列に 60を入力   A列の数字が 7桁 なら B列に 06を入力   A列の数字が 8桁 なら B列にA列の数字の上位2桁を入力 したいのです。前回次のような数式を教えてえていただきました。  =IF(LEN(A1)=4,"01",IF(LEN(A1)=6,"60",IF(LEN(A1)=7,"06",""))) 8桁のときの数式の組み立て(条件判断、表示の仕方)が分からず、困っています。教えて下さい。

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

  • ベストアンサー
回答No.1

1. 空白スペースを除くのではなく別の文字に置き換えます。 使用する関数は SUBSTITUTE です。 A1の置き換え結果は =SUBSTITUTE(A1," ","")で出ます。 " "、"" ←これがミソです。 ""、""にしてしまうと何も変わりません。 2. ほとんど答えが出ていますね。 8桁の時も一緒ですよ。 IFで8桁かどうか確認してやればいいだけです。 真の場合上2桁を、偽の場合は空白を返す式です。 =IF(LEN(A1)=4,"01",IF(LEN(A1)=6,"60",IF(LEN(A1)=7,"06",IF(LEN(A1)=8,LEFT(A1,2),"")))) どうでしょう?

ubay
質問者

お礼

早速の回答、有難うございました。おかげさまで解決しました。 助かりました。

その他の回答 (2)

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.3

>空白を置換して除こうとしましたがうまくいきませんでした 置換で置換後の文字を設定してしまったのか、半角と全角を間違えているかですね。 もう一度チャレンジしてみてください。 入力できない文字が使われているのであれば、CLEAN関数をつかってみましょう( CLEAN(A1) ) 印刷できない文字を削除する関数ですが、意外と使えるものです >8桁のときの数式の組み立て(条件判断、表示の仕方)が分からず、困っています 7桁までの場合に続けて条件式を書けばOK 上位の桁と言うことであれば、LEFT関数です( LEFT(A1,2) ) ただし、このままでは文字列として抽出されます 数値に置き変えるのであれば、VALUE関数を使って数値に直します( VALUE(LEFT(A1,2)) ) A列のデータが数値であり数値として抽出したいのであれば、 1,000,000で割った商を求めても良いでしょう( INT(A1/1000000) )  #01、06としているので文字列の方が都合よいと思いますけど参考まで

ubay
質問者

お礼

早速の回答、有難うございました。おかげさまで、解決しました。 エクセルの能力はすごいと思いました。もっと勉強したいと思います。 3人の方に、良回答20pt差し上げたいのですが、出来ませんでした。すみません。

回答No.2

こんなのではどうでしょうか? 1. 全角空白だけなら =SUBSTITUTE(A1," ","") 全角空白と半角空白があるなら =SUBSTITUTE(SUBSTITUTE(A1," ","")," ","") 2. =IF(LEN(A1)=4,"01",IF(LEN(A1)=6,"60",IF(LEN(A1)=7,"06",IF(LEN(A1)=8,LEFT(A1,2),""))))

ubay
質問者

お礼

早速の回答、有難うございました。おかげさまで、解決しました。 3人の方に、良回答20pt差し上げたいのですが、出来ませんでした。すみません。

関連するQ&A

専門家に質問してみよう