- ベストアンサー
数値を桁区切りのセルに分割表示したいのです。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1420285 上記をみて自分でも考えてみたのですが、ちょっとうまくいきませんでした。 セルA2に入った 123,456,789 という数字を セル C2からK2に1桁ずつ表示させたいのですが、 セルA2は数値が変わるので桁が足りない場合、 例;セルA2が2,209,992 の場合 C2 0→桁なし空欄 D2 0→桁なし空欄 ※できればここに¥マーク E2 2 2 F2 2 2 G2 0 0 H2 9 9 I2 9 9 J2 9 9 K2 2 2 と表示させたいのです。 桁数はC2~K2までの9桁までで、9桁フルにはいる場合は、B2に¥マークが入るようになるとベストです。 分かりづらい説明で申し訳ないのですが、どなたかいい方法がありましたら教えてください。よろしくお願いします!ifのネストになるのでしょうか・・・。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
#3です。 セルK2の式ですが、下記でもOKです。 どっちでも結果は求められていると思いますが訂正した方の式なら、 入力が少なくて済みますね(^^; K2 =IF(LEN($A$2)=0,"",MID($A$2,LEN($A$2),1)) ちなみに、A2セルが、未入力の場合は、結果も未入力になります。 A2に「0」が入力されている場合は、¥0と言う結果表示になります。
その他の回答 (5)
- imogasi
- ベストアンサー率27% (4737/17069)
A12にたとえば12345と入れて B12に =IF((8-COLUMN(B1))>LEN($A12),"",MID($A12,COLUMN(B2)-2,1) と入れてC12以下右方向に式を複写してみてください。(sp)、1,2,3,4,5となります。 上記8、-2の数を、表示を始める場所(列)によって調節してください。 今すぐは説明できなかったので、後はよろしく。
お礼
COLUMN関数、使った事がありませんでした。 >上記8、-2の数を、表示を始める場所(列)によって調節してください。 今回はThunderV2さんの回答がベスト、でした。動作を見てみます。うまくいくようでしたらこの数式の方が条件分岐?を各セルごとに設定しなくて良いですね(^^)ありがとうございました!
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 B2に、 =TRIM(LEFT(RIGHT(REPT(" ",9)&TEXT($A2&"","\0"),12-COLUMN(B2)))) と入力して、K2までコピーします。 ちなみに、参考URLの質問は別の内容の質問ですね。
お礼
>ちなみに、参考URLの質問は別の内容の質問ですね。 あ、失礼致しました。ありがとうございます。 数式入れてみたのですが、桁数が足りないとき 例;123456 → \\\123456 となってしまい if文のネストがいまいちうまくいきませんでした。 REPT関数も知らなかったので勉強になりました。 (って私、知ってる方かと思ってましたが、まだまだ、ですね・・・) 今回はThunderV2さんの回答がベスト、でした。ありがとうございました(^^)
- ThunderV2
- ベストアンサー率58% (119/205)
こんにちは。 結果重視で考えてみたので、もっと簡単になるかもしれませんが・・・ B2 =IF(LEN(A2)=9,"\","") C2 =IF(LEN(A2)=8,"\",IF(LEN(A2)<8,"",MID(A2,LEN(A2)-8,1))) D2 =IF(LEN(A2)=7,"\",IF(LEN(A2)<7,"",MID(A2,LEN(A2)-7,1))) E2 =IF(LEN(A2)=6,"\",IF(LEN(A2)<6,"",MID(A2,LEN(A2)-6,1))) F2 =IF(LEN(A2)=5,"\",IF(LEN(A2)<5,"",MID(A2,LEN(A2)-5,1))) G2 =IF(LEN(A2)=4,"\",IF(LEN(A2)<4,"",MID(A2,LEN(A2)-4,1))) H2 =IF(LEN(A2)=3,"\",IF(LEN(A2)<3,"",MID(A2,LEN(A2)-3,1))) I2 =IF(LEN(A2)=2,"\",IF(LEN(A2)<2,"",MID(A2,LEN(A2)-2,1))) J2 =IF(LEN(A2)=1,"\",IF(LEN(A2)<1,"",MID(A2,LEN(A2)-1,1))) K2 =IF(LEN(A2)=0,"",IF(LEN(A2)>=1,MID(A2,LEN(A2),1))) 内容としては、A2に入ってる桁数を基準として、¥マーク or 空白 を入れるかif分で判断し、MID関数で取り出させてます。 参考として試してみてください。
- AloneAgain
- ベストアンサー率71% (285/400)
こんにちは。 以下でどうでしょうか? B2に↓ ---------------------- =IF(LEN(A2)=9,"\","") ---------------------- C2に↓ ------------------------------------------- =IF(LEN($A2)=9-COLUMN(A1),"\", TRIM(MID(TEXT($A2,"?????????"),COLUMN(A1),1))) ------------------------------------------- ↑の数式を K2までオートフィルでコピーしてください。
お礼
桁数が少ない時に右詰にならないようです。。。 位取りが決まったマスになっている状態の項目が 8行くらいあるので、桁ずれしてしまうとまずいので。。。 今回はThunderV2さんの回答がベスト、でした。ありがとうございました(^^)
- sanpin-cha
- ベストアンサー率48% (533/1095)
C2セルに =INT(MOD(SIGN($A2)*$A2/100000000,10)) D2セルに =INT(MOD(SIGN($A2)*$A2/10000000,10)) E2セルに =INT(MOD(SIGN($A2)*$A2/1000000,10)) K2セルに =INT(MOD(SIGN($A2)*$A2/1,10)) ¥表示は IF関数で B2セルに =IF(C2>0,"\"," ") 何もないところの 0表示を消すには IF関数で工夫するか、ツール→オプション→表示で「ゼロ値」のチェックを外してください。
お礼
ゼロ値は同じシート上でその状態が出来ない項目がある為 ダメでした。IF関数は・・・工夫がすぐに思いつかなかったので、改めて確認してみます(汗) 今回はThunderV2さんの回答がベスト、でした。ありがとうございました(^^)
お礼
No.3,4 ともに要望されている形に完璧になりました!ありがとうございました。LEN,MID,LEFT,RIGHT・・・この辺がまだ私自身理解が出来ていないようです。助かりました。