- ベストアンサー
続:123,156,789.012345を3けたずつにわけて、違うセルに飛ばす関数
昨日上記質問をし、下記にて回答を頂いたものです。(ありがとうございました。) http://oshiete1.goo.ne.jp/kotaeru.php3?q=1696559 =TRIM(MID(TEXT($A1*10^6,"???????????????"),(COLUMN()-2)*3+1,3)) との回答を頂き応用をしてみたのでが、未熟なもので上手く行きません。恥ずかしいです。。。 私は応用として、仮に「123,156,789.012345」等・・、と飛ばしたい数字をG列に入れ、関数を =TRIM(MID(TEXT($G1*10^6,"???????????????"),(COLUMN()-2)*3+1,3)) とG列絶対参照に設定して、H列~コピーすれば良いのだなと思い込んだのですが、上手く行かないんです。 やり方がまずい可能性はかなり大きいのですが(´;ェ;`)、元となる数字がどの列に来ても、3桁ずつに分割して表示するには、教えて頂いた関数の、どことどこを変えれば良いのでしょうか?もしくは、他の関数を使わないといけないのでしょうか? 説明が下手ですみません。宜しくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#3です。 補足、お礼に関して。 TRIMに関しては、回答者ご本人から CZが第何列かは#4でお答えいただきました。 お礼でMID(TEXT・・とTEXTが出てきましたが、本来MIDは文字列に対して処理するものですので、これでよいのですが、数値に対しても、文字列化しないでも使えるので、私の場合、式の文字数を少なくするため、省いています。ご参考までに。
その他の回答 (4)
- mshr1962
- ベストアンサー率39% (7417/18945)
#1,2のmshr1962です。 >「TRIM」の有る無しの違いが、私にはすぐには理解出来ないんです。 TRIMは文字列の前後の不要の空白を削除する関数です。 >Hが8列なのはすぐわかるのですが「CZ」が何列なのかは、すぐにはわからないでしょう? その列で =COLUMN() とすれば何列目かわかります。また =COLUMN(CZ1) なら関数の位置に関係なくCZが何列か表示します。
お礼
何度も丁寧なご指導、ご回答ありがとうございます。自分なりに試行錯誤してみました。いつまでも締め切らずにおくわけにも行かないので、途中経過報告♪元式を=MID(TEXT($A1*10^6,"0"),(COLUMN(B1)-COLUMN($A1)-1)*3+1,3)としてみました。2ヶ所ある$A1を、セル指定し直せば、どのセルからでも行数を数えなくても楽に関数を有効に出来るカナ?と。あと分離数から一行右にずらせた位置から、関数を有効にするには-1を-2にすれば良いんですよね?間違えてるかもしれませんが、途中経過です。自分で更に、試行錯誤して見ます。ご回答が良いヒントになりました。本当に助かりました。 また、今回の質問以外で=COLUMN(CZ1)は驚きました。すばらしいです。ありがとうございます。
- imogasi
- ベストアンサー率27% (4737/17070)
数をA1に入れ、B1から分離数を入れる場合。 Bが第2列なので =MID($A$1*1000000,(COLUMN()-2)*3+1,3) G1に入れ、H1から分離数を入れる場合。 Hが第8列なので =MID($G$1*1000000,(COLUMN()-8)*3+1,3) といれて、+ハンドルを出して、右に引っ張る。
お礼
ご回答ありがとうございます。自分なりに試行錯誤してみました。いつまでも締め切らずにおくわけにも行かないので、途中経過報告♪元式を=MID(TEXT($A1*10^6,"0"),(COLUMN(B1)-COLUMN($A1)-1)*3+1,3)としてみました。2ヶ所ある$A1を、セル指定し直せば、どのセルからでも行数を数えなくても楽に関数を有効に出来るカナ?と。あと分離数から一行右にずらせた位置から、関数を有効にするには-1を-2にすれば良いんですよね?間違えてるかもしれませんが、途中経過です。自分で更に、試行錯誤して見ます。ご回答が良いヒントになりました。本当に助かりました。ありがとうございます。
補足
ご回答ありがとうございます。 「Hが第8列なので」この表現は助かりました。とても解りやすかったです。ただ、先のご回答さんの関数で使われていた「TRIM」の有る無しの違いが、私にはすぐには理解出来ないんです。(苦笑。 また、Hが8列なのはすぐわかるのですが「CZ」が何列なのかは、すぐにはわからないでしょう?・・この2点、少し自分で試行錯誤してみようと思います。・・お礼は、その答えが出せた時に、改めてさせてくださいね。自力で解らなければ、再度質問をしなおしします。その時もご回答くださればうれしいです。宜しくお願いします。
- mshr1962
- ベストアンサー率39% (7417/18945)
#1のmshr1962です。 すみません。1個所、セル座標を入れ間違いました。 誤:COLUMN(G1)-2 正:COLUMN(B1)-2
- mshr1962
- ベストアンサー率39% (7417/18945)
mshr1962です。 COLUMN()-2はB列の場合に0になるように設定しています。 H列の場合はCOLUMN()-8とするかCOLUMN(G1)-2としてください。 補足 COLUMN関数:()内の対象セルの列を返す関数 ()内がブランクの場合は、関数のあるセルの列を返します。 ROW関数:()内の対象セルの行を返す関数 ()内がブランクの場合は、関数のあるセルの行を返します。
お礼
昨日に引き続き、ご回答本当にありがとうございます。19○2さんにすれば「なんでこんな簡単な関数が分からないんだろう?」と思われているかもしれません。恥ずかしいです♪(〃⌒∇⌒)ゞ 今回の質問で教えて頂いた事を元に、自分なりに試行錯誤して見ます。・・上手く出来るかなぁ・・?!(笑
お礼
度重なるアドバイス、ありがとうございます。式の文字数を少なく・・つまりシンプルにすると言う事ですね。私もしつこい性格なので(笑、実は本日も精進いたしておりました♪(大笑 ご指導の通り、更にまた、自分の使い勝手の良いようにシンプルに元式を考えて直して見ました。=MID($A1*1000000,(COLUMN()-COLUMN($A1)-1)*3+1,3)この元式だと、分割数がB10にはいっていたなら元式をコピペして$A1(2ヶ所)のAの部分のみBに変えるだけで上手く行くようです。更に分割したい桁数を増やしたいなら1000000→1000000000とすればいいのですよね。(間違えているかもしれませんが、自分で頑張って見ます。あれこれ試して見るのが元々楽しいと感じる性格なので♪)・・どうやら、難しく考えすぎていたようです。今回のヒントで、なかなか良い感じに、自在に使えるようになりました。本当にありがとうございます。