• ベストアンサー

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

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

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

  • ベストアンサー
  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.3

直訳的な数式ですが・・・ セルB1に下記を入力して、下にオートフィルしてください。 =IF(LEN(A1)=4,"01",IF(LEN(A1)=6,"60",IF(LEN(A1)=7,"06",""))) なお、4桁、6桁、7桁 以外の桁数では、空白になります。 また、"01" "60" "06" は文字列で表示するために「" "」でくくっています。 「LEN関数の使い方」 http://excel.onushi.com/function/len.htm

ubay
質問者

お礼

有難うございます。うまく記入できました。LEN関数の使い方も参考になりました。

その他の回答 (4)

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.5

◆ついでに、4桁、6桁、7桁 以外の桁数では、空白にするには ★少し、式が長くなりますが B1=IF(OR(LEN(A1)={4,6,7}),LOOKUP(LEN(A1),{4,6,7},{"01","60","06"}),"")

ubay
質問者

お礼

有難うございます。うまく記入できました。

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.4

◆こんな方法もありますよ B1=CHOOSE(LEN(A1),,,,"01",,"60","06") または、 B1=LOOKUP(LEN(A1),{4,6,7},{"01","60","06"}) ★下にコピー

ubay
質問者

お礼

有難うございます。うまく記入できました。

noname#204879
noname#204879
回答No.2

[ユーザー定義]で 00 に書式設定したセル B1 に次式を入力して、此れを下方にズズーッと複写 =(LEN(A1)=4)+(LEN(A1)=6)*60+(LEN(A1)=7)*6

ubay
質問者

お礼

有難うございます。うまく記入できました。

  • deecyan
  • ベストアンサー率38% (89/233)
回答No.1

桁数は LOG10という関数と 切捨て(INTまたはRoundDown)を使います あと桁数によって 文字を入れていけばいいので INDEX関数等で 指定します A列が0より大きい場合は  =INDEX({"XX","XX","XX","01","XX","60","06","XX"},INT(LOG(A1))+1)

ubay
質問者

お礼

有難うございます。うまく記入できました。INDEXを使う方法も有るのですね。

関連するQ&A

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

  • A列の文字列によってB列への入力を変える

    こんにちは。マクロ初心者で、質問なのですが、 エクセルで、A列に入力されている文字列によって、 B列文字を自動で入力するマクロを作成したいのですが、 どのように記述すればよいでしょうか? 例: A列 |B列 |  あ | 01 |A列「あ」の場合、B列の同じ行に「01」  い | 02 |A列「い」の場合、B列の同じ行に「02」 といった感じです。 初歩的な質問で申し訳ございませんがご教授願います。

  • A列とB列の値の差から、ほしい行を見つけ出す関数

    お世話になります。 A列とB列に、それぞれランダムに数字が入っていて、 「A列とB列の値の差が、±5.1 以上」である行だけを知りたい場合、 どうすればいいでしょうか? (セルの値は整数だけではなくて、小数点5桁以上の場合もあります。) エクセルかロータスで、それを導き出す関数の式がわかる方、ぜひ教えてください。 表計算ソフト超初心者です。よろしくお願いします。

  • エクセルでA列とB列のデータが同一か確認したい

    エクセルでA列とB列のデータが同一か確認したいです。 つまり・・・・・    A列  B列 1  12-1 12-1 2  13-1 13-1 3  13-5 13-7 4   ・ ・ 5   ・ ・ 6   ・ ・ というような場合13-5 13-7という行が間違っていることになりますが、それを目で確認するのは手間とミスがおきやすいのでエクセルの機能でそのようなものがあれば教えてください。

  • 列の値を行に揃えたいのですが

    すみませんが教えてください。関数、マクロ、ピポットテーブル等本を読みましたが適したものが見つけられませんでした。うまく記入できなかったのですがデータ数が膨大な為なんとか最良の方法を教えていただきたいのですがよろしくお願いいたします。 A1から順に親I、B2に子(1),子(2)、子(3)とD列まで入力してあり、A2には 1234,1235,1236,1237とD列までそれぞれ電話番号の下4桁が入力されております。 A3には、また同じように親II、B2に子(1),子(2)、子(3)とD列まで入力、A4に電話番号が入力されてあり、このような組み合わせが延々と続きます。 これをA行に親Iの電話番号を頭に1234~1237、B行に親I~子(3)、C行に親Iの1234の電話番号を、子(1)~子(3)までそれぞれ割り振り。 そして、A5から親IIを同じように記入しなおしたいのです。 横に関連づけのあるデーターを縦に挿入し直し、なおかつ次の親から始まるデーターを記入することは可能でしょうか。

  • excelVBA でA+B列をファイル書き出し

    excel2003の VBA で、開いているシートのA列(項目行)とB列(データ)を抜粋してB列の1行目のセルに入力されているデータをファイル名として新しいEXCELファイル(B列の1行目のセルに入力されているデータ.xls)として書き出したいのです。また、B列以降も、A列+C列で1ファイル、A列+D列で1ファイル・・・のように列にデータが記載されているまでファイルとして書き出したいのです。 このような書き出しVBAを教えて下さい。宜しくお願いします。

  • エクセルで、桁数の異なるデータ(整数)を抜きたしたいのですが?

    初心者です! エクセルで、例えばA列にある桁数の異なるデータ(整数)を抜きたしたいのですが、アドバイスをお願いします。 桁数は、9桁~11桁の3種類のデータがあり、例えば9桁のデータを抜き出すには、どのようにすればよいのでしょうか? 【例】 A列↓ 123456789 2345678910 45874521223 235461789 4567896541 89756413578 以上、宜しくお願いします。

  • エクセル2000で、A列の3桁のデーターで1桁の値が

    エクセル2000で、A列の3桁のデータがあり、一の位が、1又は2の場合、B列に一の位が1ならば"A"、B列に一の位が2ならば"B"としたいのですが、IF関数RIGHT関数を組み合わせてみましたがうまくいきません。この暑さで頭が冷や汗かいてます。よきアドバイスお願いします。

  • A列の数値をB列に順次足していきたいのですが。

    A列の数値をB列に順次足していきたいのですが。 エクセル2007で家計簿をつけています、A2からA50に金額が日毎に入力されA51に合計が出ます。 画面上にはA20程度しか映らないので日々の合計を確認し忘れることがあります、そこでリアルタイムで照合したいのです。B3=A2+A3,B4=A2+A3+A4,B5=A2+A3+A4+A5を表示させたいのです、どんな式をA3に入れればよいのですか。宜しくお願いします。

  • VBA2010,B3の値が変わったら、A3に

    VBA2010で,B列の値が変わったら、A列の同じ行に前日の日付を入力するには、マクロコードをどのように書けばよいですか?B列データ入力範囲はB3~B65536 尚、B3~B65536にはVLOOKUPで、他のブックから値を参照しています。 最後にA列の同じ日付セルを結合し、I列、P列、W列の同じ行に結合したセルをペーストたいのです。 宜しくお願い致します。

専門家に質問してみよう