• ベストアンサー

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

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

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