• ベストアンサー

文字列の途中の空白を除く、また、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桁のときの数式の組み立て(条件判断、表示の仕方)が分からず、困っています。教えて下さい。

  • ubay
  • お礼率76% (16/21)

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

  • ベストアンサー
回答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

  • A列が空白なら、計算式の入っているB.C・・~列も空白で表示する方法。

    A列に対して、B.C・・~列にそれぞれ違った式が入っています。 A列が空白だと、B列#N/A、C列1 ・・・と、それぞれ答えが返ってきます。 今までは、各B、C・・列に「A列が空白の場合は表示しない」設定を「条件付書式」を使ったり「IF(ISERROR・・」の関数を使ったり 無い知恵と知識を振り絞って悪戦苦闘の末、1列1列・・こつこつ設定していたのですが 「もっと簡単な方法があるのでは??」と都合のいいことを考えました。 しかし、恥ずかしながら私には知識が無いもので、そんな事が出来るのか、また仮に出来るとしても方法がわかりません。 関数でも、条件付書式でも、何でもかまいません。 指定したセルが空白の場合、そのセルに対して数式が入っている他の複数セルにも何も表示しないように一発で出来るようにするには、 どうすればいいのか教えて頂けませんか? 98です。出来るだけ簡単な方法がありがたいです。 余談なのかもしれませんが、B列にはVLOOKUPの関数、C列には「A列内の数字+1」と言う式が入っています。 C列はA列に0と入力しても、空白でも1という答えが返ってきてしまいます。そこでA列が空白の場合答えが表示されないようにしたいのです。) 宜しくお願いします。

  • A列の数値データの桁数に応じて、B列に異なる値を記入する方法

    初心者です。エクセル2000 で入力します。すみませんが、教えてください。  A列のデータが4桁ならB列に 01 を記入、A列のデータが6桁なら 60 を記入、A列のデータが7桁なら 06 を記入したいのです。      A列       B列 1行  4001  →→ 01 2行  270006 →→ 60 3行  6300021 →→ 06  4行  4101   →→ 01 5行  271001 →→ 60 6行  6200032 →→ 06

  • Excel2000のセル内の文字列の数字の先の2桁を取り出す方法について

    年のいった初心者です。 以前の質問に対する回答有難うございます。また、教えてください。  エクセル2000です。セル内に数字の文字列で、4桁、6桁、8桁のものが有ります。4桁のものには"01"を、6桁のものには"60"を、表示し、8桁のものには数種類あり、8桁の場合は、各文字列で上位の2桁を表示したいのです。 =IF(LEN(A1)=4,"01",IF(LEN(A1)=6,"60",IF(LEN(A1)=8,?????? 4桁、6桁については以前に教えていただいた、関数等でいけたのですが、8桁のときが分かりません。困っています。お願いします。     A列    B列 1 7532 →→ 01 2 280573 →→ 60 3 34964821 →→ 34 4 06839775 →→ 06 5 67500023 →→ 67

  • Excelで特定の列の空白を埋める方法

    エクセルで次のようなことは可能でしょうか? 昨日も同じような質問をいたしましたが、よろしくお願いします。 A列に次のように入力されているとします。 (昨日、質問で文字列にa,b,cを付け加える方法を教えていただきましたが、以下のものは一つずつ入力してあるとします。) 001a 001b 空白 空白 002a 空白 空白 空白 003a 空白 空白 ここの空白を 001a 001b 空白 → 001c 空白 → 001d 002a 空白 → 002b 空白 → 002c 空白 → 002d 003a 空白 → 003b 空白 → 003c とする方法はないでしょうか?(千行くらいを自動的に) あとこれに関連して別の質問ですが、 ある列の001a, 001bなどのアルファベットのみ削除(はずす)して 001,002だけの数字にする方法も教えていただけないでしょうか? よろしくお願いします。

  • A列に文字列または数字を入力したら隣接するD列に今日の日付が入るようにしたいです

    A列に文字列または数字を入力したら 隣接するD列に今日の日付が入るようにしたいです。 (A1に「あ」と入力したら、 D1に「2007/10/25」が自動的に入力されるようにしたいです) これはIF関数を利用するのでしょうか?? どんどんデータが多くなっていちいち数式をオートフィルするのは面倒だし オートフィルタをかけて「空白のセル」を検索した時に、 IF関数で””のセルも空白セルとして認識されるのが嫌なので 数式以外でこの方法を行うことは出来ないでしょうか? よろしくお願い致します。

  • 文字列での数値の入力方法

    WINDOWS XP EXCELL 2003です。 6桁(200001~299999)の数字を入力をしていますが 例えば 200001 のコードを入力しようとしたときは 現在はそのまま 200001 と入力しています。 これを 1 と入力すれば 200001 と省略して入力する方法はないでしょうか。 下記の2つの方法で試しましたがうまくいきません。  1 ユーザー定義で  200000 と設定 セルに1と入力すると確かに200001となりますが 文字 列 の扱いになりません。  2 A1 = 200000 B1 = 1 で A1+B1=200001 と矢っ張り文字列にはなりません。 文字列を参照している数式が =IF(B7="","",VLOOKUP(B7,商品管理!$A$2:$B$211,2,FALSE)) & "" 何か良い方法で省力化できて入力でき且つ文字列なることは可能でしょうか。 良い方法がありましたらご指導いたたけませんでしょうか。 よろしく御願いします。

  • VBSでテキストファイルの文字列の桁数を調べたい

    VBSでテキストファイルを1行ずつ読み、ある桁からある項目A(20桁)が始まるとします。 項目Aは漢字が入ります。後ろ空白(1バイト空白)詰めです。 その項目Aの桁数を調べるにはどのようにVBSを組めばよいのでしょうか? VBSでMid関数とかLen関数を使ってもうまく計算してくれてないような感じなのです。 例えば 桁 →123456789012345678901234567890 data1→aaaaaaaaaこんばんわ data2→aaaaaaaaaおつかれ で strRec1 = Mid(strRecord,10,20)  とした場合、stRec1には項目Aが入る予定 data1なら5、data2なら4と返ってきてほしいのです。 ちなみにMidBでもそれぞれ10,8で返ってきてもいいです。 言い換えると、桁n~桁mまでの項目に何桁の漢字があるかを調べたいです。 よろしくお願いします。

  • 条件付き書式「A列に文字が入っていてB列が空白なら

    今は、 B列が空白なら、赤くするになっていますが 本当は 「A列に文字が入っていてB列が空白なら」 としたいのですが、 どのような式にすればいいのでしょうか?

  • エクセルの数字の表示方法 再質問です

    昨日下記質問をして回答をいただきました A列の各行に、1桁から7桁の数字があります A1に 7桁の数字を入力した場合、B1からH1に各数字を右詰めで表示する方法を教えてください 回答 B1に=IF(LEN($A1)<=7,TRIM(MID(REPT(" ",7-LEN($A1))&$A1,COLUMN(A1),1)),"") を入力、右方向にコピー、B1:H1を選択して下方向にコピー 再質問 任意の列 Z列50行目に、7桁の数字があります (Z,50)に 7桁の数字を入力した場合、B1からH1に各数字を右詰めで表示する方法を教えてください よろしくお願い致します

  • EXCEL A列の値を受けてB列に出力するロジック

    A列の値を受けて、B列に出力するVBAを組みたいと考えています。 ロジックが思いつきませんので、お助け下さい。 A列に一の位が必ず1の数字が入っています。 それをB列に1~10まで展開します。 それが終われば、A列の次の値をB列に入力、 同じように、B列に1~10まで展開します。 それをA列の最後の値まで繰り返します。 最終的にはA列に入力されている個数の10倍の個数がB列に出力されることになります、 以上の処理です。 A   B    C   D   E   F   G 1   31   31 2   61   32 3   81   33 4   11   34 5   ・   35 6   ・   36 7   ・   37 8   ・   38 9   ・   39 10   ・   40 11   ・   61 12   ・   62 13   ・   63 A列の値の個数は多いので、できるだけ早く動作するような処理方法がわかればと思います。 よろしくお願いします。

専門家に質問してみよう