• ベストアンサー

【Excel】数字を三桁毎に区切ってセルに振分る

【A1】1,146,900,000 ↓ 【A2】【A3】【A4】【A5】    1 146 900 000 のように、売上金額を通常入力したものを4つのセルに振り分けたいのですが、 どのような関数を使えばよいでしょうか。 MIDなども使ってみたのですが 桁数が決まっていないので私のレベルでは手に負えませんでした・・。 どなたかご教示いただけないでしょうか。 よろしくお願い致します。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.11

No.6です。 >【A2】 【A3】 【A4】 【A5】に分割ではなく 【B1】【C1】【D1】【E1】 に分割でした。 だとすると、前回の数式を利用してB1セルに =MOD(INT($A$1/(10^(3*(4-COLUMN(A1))))),1000) という数式を入れ、E1セルまでオートフィルでコピーしてみてください。 次に >上記事情でできる範囲でアレンジしてみたのですが、#NUM!エラーになってしまいました。 >更に、ユーザー定義の中に000を見つけられませんでした に関してですが、今回はB1セルは何もしないで C1~E1セルを範囲指定 → 右クリック → セルの書式設定 → ユーザー定義 → 「G/標準」となっている欄に、「G/標準」を消し、ご自身で 000 と入力します。 これでC1~E1セルが必ず3桁で表示されます。 こんなんではどうでしょうか?m(_ _)m

kaitouok
質問者

お礼

出来ました!!! 素早いご回答ありがとうございます!!

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (11)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.12

 回答番号ANo.8です。 >【A2】 >【A3】 >【A4】 >【A5】に分割ではなく >【B1】【C1】【D1】【E1】 >に分割でした。  それでしたら次の様な関数となります。 =IF(ISNUMBER(1/$A1+1/($A1=INT($A1))),IF(COLUMNS($B:B)>INT(LOG10($A1)/3)+1,"",MOD(INT($A1/10^(FLOOR(LOG10($A1),3)-(COLUMNS($B:B)-1)*3)),1000)),"") 或いは =IF(ISNUMBER(1/$A1+1/($A1=INT($A1))),IF(COLUMNS($B:B)>ROUNDUP(LEN($A1)/3,0),"",RIGHT(LEFT(TEXT($A1,"#,##0"),FIND("@",SUBSTITUTE(TEXT($A1,"#,##0")&",",",","@",COLUMNS($B:B)))-1),3)+0),"")  上記のどちらかの関数をB1セルに入力してから、B1セルをコピーして、C1セルに貼り付けて下さい。  次に、C1セルの書式設定の表示形式を、[ユーザー定義]の 000 として下さい。  その上で、C1セルをコピーして、C1セルよりも右側にあるセル(D1、E1等)に貼り付けて下さい。

kaitouok
質問者

お礼

出来ました! 大変丁寧な解説ありがとうございます!

全文を見る
すると、全ての回答が全文表示されます。
  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.10

No.4、No.9です。 頭に00が付いてしまいますのでA2の表示形式は、標準として下さい。  

kaitouok
質問者

お礼

分割後、セルの頭にくる0を、 元の数字の頭である場合は非表示 元の数字の中にあるものの場合は表示 としたい場合、都度表示形式を操作するしかないのでしょうか。 計算式って難しいですね・・・・

全文を見る
すると、全ての回答が全文表示されます。
  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.9

No.4です。 頭に0がつくと表示されなくなります。 A2~A5すべての表示形式をユーザー定義の種類を000 にして下さい。

kaitouok
質問者

お礼

再度のご回答ありがとうございます。 非表示になった原因はわかりましたが、 ユーザー定義に000が見つけられません。 0.00とかならあるのですが・・ ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.8

 何故、【B1】【C1】【D1】【E1】ではなく、【A2】【A3】【A4】【A5】なのかは解りませんが、A2セルに次の関数を入力してから、A3以下に貼り付けると良いと思います。 =IF(ISNUMBER(1/A$1+1/(A$1=INT(A$1))),IF(ROWS($2:2)>INT(LOG10(A$1)/3)+1,"",MOD(INT(A$1/10^(FLOOR(LOG10(A$1),3)-(ROWS($2:2)-1)*3)),1000)),"") 或いは =IF(ISNUMBER(1/A$1+1/(A$1=INT(A$1))),IF(ROWS($2:2)>ROUNDUP(LEN(A$1)/3,0),"",RIGHT(LEFT(TEXT(A$1,"#,##0"),FIND("@",SUBSTITUTE(TEXT(A$1,"#,##0")&",",",","@",ROWS($2:2)))-1),3)+0),"")

kaitouok
質問者

お礼

ありがとうございます。 トライしてみたのですが($2:2)をどのようにアレンジしたらよいかわからず、 未完成状態で力尽きてしまいました。 【B1】【C1】【D1】【E1】 にする場合はどのようにしたらよろしいでしょうか? お忙しい中すみません。

kaitouok
質問者

補足

その通りでした。 【B1】【C1】【D1】【E1】 に分割の間違いだったんです。 大変失礼いたしました。

全文を見る
すると、全ての回答が全文表示されます。
noname#204879
noname#204879
回答No.7

添付図参照 Sheet2 において、 A1: =TEXT(Sheet1!A1,"#,##0") A2: =IF(ROW()<LEN(A$1)-LEN(SUBSTITUTE(A$1,",",""))+2,SUBSTITUTE(A1,Sheet1!A2&",",""),"") セル A2 をズズーッと下方に(例えばセル A10 まで)ドラッグ&ペースト 範囲 A1:A10 をズズーッと右方にドラッグ&ペースト Sheet1 において、 セル A2 に次式を入力して、此れをズズーッと下方に(例えばセル A10 まで)ドラッグ&ペースト =IF(ISERROR(FIND(",",Sheet2!A1)),Sheet2!A1,LEFT(Sheet2!A1,FIND(",",Sheet2!A1)-1)) 範囲 A2:A10 をズズーッと右方にドラッグ&ペースト

kaitouok
質問者

お礼

2パターンも図説付きでありがとうございます。 ただ、上記事情のためなのか、うまくいきませんでした。。。 計算式を見ても私の知識ではどういう計算なのか解らず、アレンジしきれません。 勉強不足で申し訳ありません。 貴重なお時間をどうもありがとうございました。

kaitouok
質問者

補足

【A2】 【A3】 【A4】 【A5】に分割ではなく 【B1】【C1】【D1】【E1】 に分割でした。 これにより計算方法も変わるのでしょうか? すみませんでした。

全文を見る
すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.6

こんばんは! 一例です。 A1セル12桁まで対応できます。 A2セルの表示形式はユーザー定義から 000 としておきます。 A2セルに =MOD(INT($A$1/(10^(3*(4-ROW(A1))))),1000) という数式を入れA5セルまでオートフィルでコピーではどうでしょうか?m(_ _)m

kaitouok
質問者

お礼

ありがとうございます。 上記事情でできる範囲でアレンジしてみたのですが、#NUM!エラーになってしまいました。 更に、ユーザー定義の中に000を見つけられませんでした。 せっかく回答くださったのにすみません。 どうもありがとうございました。

kaitouok
質問者

補足

【A2】 【A3】 【A4】 【A5】に分割ではなく 【B1】【C1】【D1】【E1】 に分割でした。 これにより計算方法も変わるのでしょうか? すみませんでした。

全文を見る
すると、全ての回答が全文表示されます。
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.5

ご相談のヤリタイ事でちょっとやっかいなのは,たとえばA1に 1,023,400,050 のように数字が有った場合,2カタマリ目は「023」のような先頭のゼロが必要ですが,  23,400,050 のような数字では「23」のように先頭のゼロを無くしたい, そういう操作を「数値の書式設定では原則として出来ない」点です。 (参考:Excel2007以降では,条件付き書式を使って出来ます) というワケで,結果の数字を「文字列」で表示させてみます。 A1に元の数字として B1に =MID(TEXT($A1,"????????????"),(COLUMN(A1)-1)*3+1,3) のように記入し,E1までコピーして貼り付ける。 B1:E1はセルの配置を「右寄せ」にする。

kaitouok
質問者

お礼

そうなんです! そうなんですが、できる範囲で上記事情を踏まえアレンジしてみたのですが、 すべてブランク表示になってしましました。 勉強不足ですみません。 貴重なお時間をどうもありがとうございました。

kaitouok
質問者

補足

【A2】 【A3】 【A4】 【A5】に分割ではなく 【B1】【C1】【D1】【E1】 に分割でした。 これにより計算方法も変わるのでしょうか? すみませんでした。

全文を見る
すると、全ての回答が全文表示されます。
  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.4

A2に =IF(A1>=1000000000,INT(A1/1000000000),"") A3に =IF(A1>=1000000000,INT(MOD(A1,1000000000)/1000000),"") A4に =IF(A1>=1000000,INT(MOD(A1,1000000)/1000),"") A5に =IF(A1>=1000,INT(MOD(A1,1000)),"") A5の表示形式を ユーザー定義 000 数値の社員コードに自動で前ゼロをつける http://kokodane.com/tec49.htm

kaitouok
質問者

お礼

ありがとうございます。 上記事情もあり、解る範囲で書き変えつつやってみたのですが、 【B1】【C1】が非表示状態です。 勉強不足ですみません。 どうもありがとうございます。

kaitouok
質問者

補足

【A2】 【A3】 【A4】 【A5】に分割ではなく 【B1】【C1】【D1】【E1】 に分割でした。 これにより計算方法も変わるのでしょうか? すみませんでした。

全文を見る
すると、全ての回答が全文表示されます。
  • m_and_dmp
  • ベストアンサー率54% (976/1799)
回答No.3

やったことはありませんが、 A5は、=Right(A1,3) A4は、=Rounddown(Right(A1,6)/1000,0) A3は、=Ronddown(Right(A1,9)/1000000,0) A2は、=Rounddown(Right(A1,12)/1000000000,0) INT関数なら A4は、=Int(Right(A1,6)/1000) 今エクセルを開けない状況なのでINT関数の方はこれでよかったかどうか自信がありませんので調べてください。

kaitouok
質問者

お礼

ありがとうございます。 分割したセルの先頭に0がくる数字だと、 表示されなくなってしまいます。 ちなみにINTでもやってみまして、 計算式は大丈夫でしたがやはり0が先頭だといなくなってしまいます。 わがままな要求ですみません。。 貴重なお時間ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

正の整数限定で A2セル =IF(LEN(A1)<=9,"",RIGHT(INT(A1/10^9),3)) A3セル =IF(LEN(A1)<=6,"",RIGHT(INT(A1/10^6),3)) A4セル =IF(LEN(A1)<=3,"",RIGHT(INT(A1/10^3),3)) A5セル =RIGHT(A1,3) (A2:A5セルを右へオートフィル)

kaitouok
質問者

お礼

ありがとうございます! イメージに近い感じでできましたが、分割したセルの先頭に0がくる数字だと、 表示されなくなってしまいます。 何か対処法はないでしょうか?

kaitouok
質問者

補足

すみません、No.3様へのお礼と間違えてお礼してしまいました。 こちらの方法でしたら先頭桁に0が来ても大丈夫ですね。 図説までいただきありがとうございます!! かなり理想に近いと思います。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 複数桁の数字を1セルずつ表示したい

    エクセル2010を使っています。 1つのセルに入っている複数桁の数字を、1セルずつ分けて表示させたいと思っています。 しかも、数字を置き換えて桁数が減った場合には、右に詰めたいです。 (例) AIに12345 と入力したら、B1に1、B2に2、B3に3、B4に4、B5に5と表示させたい。 A1の数字を123に置き換えたら、B1、B2は空欄、B3に1、B4に2、B5に3と置き換わるようにしたい。 ただ単に数字を1セルずつ分けるだけでしたら、mid関数を使ってできるのですが、 桁数の異なる数字に置き換えると右に詰めるようにするにはどうしたらよいでしょうか。 更に、数字の左側に円マークも表示させたいです。 よろしくお願いします。

  • Excel2000での数値の抽出について教えて下さい。

    どうかご教示下さい。(過去質問を眺めましたが、不慣れな為よくわかりませんでした) Excel2000で桁数の不揃いな数値が入力されています。(1桁-10桁) それを別のセルに分解して抽出したいです。 たとえば、 A1セルに"12345"と入力されている数値に対して、 A2には万の位の"1"を、A3には千の位の"2"を、A4には百の位の"3"をと言った具合です。 桁数が不揃いの為、MID関数がうまく出来ませんでした。 小生まだまだ初心者です。以上よろしくお願いします。

  • セルの入力を半角数字8桁のみ入力したい

    セルに入力制限をかけるために 入力規則の設定から ユーザー設定を選択、 数式を  =EXACT(UPPER(A1),A1) (A1セルに設定する場合) と入力しています。 これにより文字の入力は防げましたが /や?などの記号は入力できてしまいます。 このような記号の入力を同時に防ぐことは出来るでしょうか? また、桁数は8桁のみの入力なのですが、 関数で【LENS】というのを使用すればよいみたいなのですが、 使い方がよくわかりません。 あわせてご教授いただければうれしいです。

  • セル内にある長さの違う数字の分割

    A1=123 A2=456 A3=7890 という桁数の違う数字がセル内にある時、B行に千の位、C行に百の位、D行に十の位、E行に一の位⇒  B1=空白 C1=1 D1=2 E1=3 B2=空白 C2=4 D2=5 E2=6 B3=7 C3=8 D3=9 E3=0 と他のセルに表示させたいのですが…、関数MIDを使用すると桁数が違う為、うまくいきません。何か方法があれば教えて下さい。よろしくお願いします。

  • 同一セル内で大きい方の数字のみ抽出する関数について

    エクセルの同一セル内で大きい方の数字のみ抽出する方法がわからず困っております。 1つのセルには下記の2行のような情報が含まれます。 -------------------------------------- (A1セル) 189,815円 (税込 205,000 円) 送料込 (A1セル)中古品 ¥ 138,000より -------------------------------------- (A1セル) 189,815円 (税込 205,000 円) 送料込 の場合、 下記関数にて税込の金額が正しく表示されますが、 (A1セル)中古品 ¥ 138,000より を入力した場合正しく表示されません。 =TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",99)),99*3-99,99))*1 (A1セル)中古品 ¥ 138,000より の場合、下記関数にて正しく表示されますが、 (A1セル) 189,815円 (税込 205,000 円) 送料込 の場合、正しく表示されません。 =LOOKUP(10^10,MID(A1,MATCH(0,INDEX(0/MID(A1,COLUMN(1:1),1),),),COLUMN(1:1))*1) 両方の形式に対応する関数を教えて頂けましたら幸いです。 要は、文字と数字が同一セル内に混同する場合、数値のみを抽出するが、 その際に大きい方の数値のみを抽出するということです。 どうかご存知の方がいらっしゃいましたら、お知恵をお貸し頂きたく、何卒、宜しくお願い申し上げます。

  • EXCELで 数字の振り分け(定数で割って表示)をしたい

    説明が下手かと思いますが、ご了承下さい。 入力した数字を、定数で分けて入力したい。 例えば、セルA1に2500と入力する 定数を1000として割ったら、2500÷1000=2.5となりますが、 それを、セルB1に1000、B2に1000、B3に500・・・となるように表示させたい。 関数でもVBでも拘りません。 ただ、素人に近いので、VBなら貼ったらOKレベルで記入して頂ければ助かります。 宜しくお願い致します。

  • 2つのセルの内容を1つのセルに

    セルA1にAが、セルB1にBが入力されています。 これを1つにまとめ、セルC1にABと表示させるには、どのような関数を入れたらいいでしょうか? 簡単な関数ですが、忘れてしまいました。 ご教示ください。 宜しくお願します。

  • 数字の桁ごとに、各セルに抽出

    最大11桁の数字を各セルに抽出したい。 金額をF列に入力すると、 D列には下3桁が表示され、 C列には右から6桁~4桁、 B列には右から9桁~7桁、 A列には右から11桁~10桁と、 表示されるように、関数を組みたいです。

  • Excel:ひとつのセルに入力されている複数桁の数字を他のセルに分けて自動表示

    Excelで例えばSheet1!A1に「123456」と入力されると、Sheet2!A1に「1」、Sheet2!A2に「2」、Sheet2!A3に「3」、Sheet2!A4に「4」、Sheet2!A5に「5」、Sheet2!A6に「6」、と表示させることは可能でしょうか? もし可能であれば方法をご教示頂けませんか? なお、Sheet1!A1に入力する文字種は数字以外はありません。 また、最大7桁で、それ以上の桁になることはありません。 同時にSheet1!A1に入力可能な桁数を7桁までに制限させるようにもしたいです。 よろしくお願いいたします。

  • Excel2002でセルへの数値代入

    使用しているのはExcel2002なんですが 関数などを使用して空白セルへ数値及び文字列を 代入することって可能でしょうか? 例を挙げると、 セルA1に7という値を入力すると、 セルC1にある関数が「10-A1」という計算を行って セルB1に3という値を返すようにしたいのです。 また、セルB1に4という値を入力すると、 セルC1で計算を行い、セルA1には6が返る。 このようにセルA1、B1ともに、人の手で数値の 入力が行われる可能性があるので、表示部分のセルに 関数式を記述せず、空白としておく。 C1に入力する関数は IF(B1="",10-A1,10-B1) として、この結果を、またIFなどを使って 空白の方のセルに入力してあげればいいかなー というところまでは考え付いたのですが・・・ どなたか教えてください。

専門家に質問してみよう