- ベストアンサー
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
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
直訳的な数式ですが・・・ セル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
その他の回答 (4)
- maron--5
- ベストアンサー率36% (321/877)
◆ついでに、4桁、6桁、7桁 以外の桁数では、空白にするには ★少し、式が長くなりますが B1=IF(OR(LEN(A1)={4,6,7}),LOOKUP(LEN(A1),{4,6,7},{"01","60","06"}),"")
お礼
有難うございます。うまく記入できました。
- maron--5
- ベストアンサー率36% (321/877)
◆こんな方法もありますよ B1=CHOOSE(LEN(A1),,,,"01",,"60","06") または、 B1=LOOKUP(LEN(A1),{4,6,7},{"01","60","06"}) ★下にコピー
お礼
有難うございます。うまく記入できました。
[ユーザー定義]で 00 に書式設定したセル B1 に次式を入力して、此れを下方にズズーッと複写 =(LEN(A1)=4)+(LEN(A1)=6)*60+(LEN(A1)=7)*6
お礼
有難うございます。うまく記入できました。
- deecyan
- ベストアンサー率38% (89/233)
桁数は LOG10という関数と 切捨て(INTまたはRoundDown)を使います あと桁数によって 文字を入れていけばいいので INDEX関数等で 指定します A列が0より大きい場合は =INDEX({"XX","XX","XX","01","XX","60","06","XX"},INT(LOG(A1))+1)
お礼
有難うございます。うまく記入できました。INDEXを使う方法も有るのですね。
お礼
有難うございます。うまく記入できました。LEN関数の使い方も参考になりました。