Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10 Home : Excel 2010)
数字を枠内に分割表示するには?
投稿日時: 17/09/29 11:14:41
投稿者: ちた

元帳の表計算を作成しています
123,456,789とセルに入力すると自動的に
|1|2|3|,4|5|6|,7|8|9|
456,789とセルに入力すると自動的に
| | | |4|5|6|,7|8|9|
というように一文字ずつセルに分割表示させるには
どうしたらよいでしょうか
いろいろな方法があるでしょうが
ご教授お願い致します

回答
投稿日時: 17/09/29 12:34:14
投稿者: んなっと

桁区切り(,)を無視すれば
 
      A B C D E F G H I J
1 123456789 1 2 3 4 5 6 7 8 9
2  12345678   1 2 3 4 5 6 7 8
3  1234567    1 2 3 4 5 6 7
4   123456      1 2 3 4 5 6
5   12345       1 2 3 4 5
6    1234         1 2 3 4
7    123          1 2 3
 
B1
=IFERROR(MID($A1,LEN($A1)-9+COLUMN(A1),1),"")
右方向・→
 
例のように桁区切り(,)もつけるときは
 
      A B C D  E F G  H I J
1 123456789 1 2 3 ,4 5 6 ,7 8 9
2  12345678   1 2 ,3 4 5 ,6 7 8
3  1234567    1 ,2 3 4 ,5 6 7
4   123456      1 2 3 ,4 5 6
5   12345        1 2 ,3 4 5
6    1234         1 ,2 3 4
7    123           1 2 3
 
B1
=IFERROR(IF(AND(MOD(COLUMN(A1),3)=1,LEN($A1)>10-COLUMN(A1)),",",)&MID($A1,LEN($A1)-9+COLUMN(A1),1),"")
右方向・→

回答
投稿日時: 17/09/29 12:41:35
投稿者: んなっと

桁区切り(,)を別セルに入れるときは
 
      A B C D E F G H I J K L
1 123456789 1 2 3 , 4 5 6 , 7 8 9
2  12345678   1 2 , 3 4 5 , 6 7 8
3  1234567    1 , 2 3 4 , 5 6 7
4   123456       1 2 3 , 4 5 6
5   12345         1 2 , 3 4 5
6    1234          1 , 2 3 4
7    123             1 2 3
 
B1
=IFERROR(MID(TEXT($A1,"#,##0"),LEN(TEXT($A1,"#,##0"))-11+COLUMN(A1),1),"")
右方向・→

回答
投稿日時: 17/09/30 00:56:38
投稿者: Mike

   A    B C D E F  G H I  J K
1 123,456,789  1 2 3 ,4 5 6 ,7 8 9
2 12,345,678    1 2 ,3 4 5 ,6 7 8
3  1,234,567     1 ,2 3 4 ,5 6 7
4   123,456       1 2 3 ,4 5 6
5   12,345         1 2 ,3 4 5
6    1,234          1 ,2 3 4
7     123            1 2 3
 
B列は空白列とします。
C1: =IF(AND(B1="",MID(TEXT($A1,REPT(0,9)),COLUMN(A1),1)="0"),"",IF(B1="","",IF(MOD(10-COLUMN(A1),3),"",","))&MID(TEXT($A1,REPT(0,9)),COLUMN(A1),1))

回答
投稿日時: 17/09/30 01:57:54
投稿者: LMK

うーん。
カンマの位置はあらかじめ決まっているんですよね。
それなら、数式より条件付き書式にした方がシンプルなのでは?

回答
投稿日時: 17/09/30 07:49:16
投稿者: Mike

LMK さんの引用:
条件付き書式にした方がシンプルなのでは?
具体的にはどうするのですか?

回答
投稿日時: 17/09/30 09:58:15
投稿者: んなっと

 E列選択
→条件付き書式→新しいルール→数式を使用して〜
 次の数式を使用して〜
=D1<>""
→書式(F)...→表示形式
 ユーザー定義
","@
→OK
→H列に書式貼り付け
 
などの手順かもしれませんね。

回答
投稿日時: 17/09/30 10:04:00
投稿者: んなっと

これ、桁区切り(,)を別セルに入れる仕様に変更になる可能性もあるので、
あまり深入りしないほうがいいのかもしれません。

回答
投稿日時: 17/10/01 08:05:36
投稿者: んなっと

「別セル」は、こんな方法もあるようです。
 
      A B C D E F G H I J K L
1 123456789 1 2 3 , 4 5 6 , 7 8 9
2  12345678   1 2 , 3 4 5 , 6 7 8
3  1234567    1 , 2 3 4 , 5 6 7
4   123456       1 2 3 , 4 5 6
5   12345         1 2 , 3 4 5
6    1234          1 , 2 3 4
7    123             1 2 3
8     12               1 2
9     0                0
 
B1
=TRIM(LEFT(RIGHT(TEXT($A1," #,##0"),12-COLUMN(A1))))
右方向・→

回答
投稿日時: 17/10/01 13:55:06
投稿者: LMK

せっかくセルを分けるのだからカンマでなくても3桁ごとの罫線で十分では、という気がしてきたので、以下はカンマなしの別案です。
全体を左右に移動できるメリットがあります。(下の例は一の位がK列にあるときのセルC1の式です。)
循環参照になりそうでならないようです。
=IFERROR(MID($A1,LEN($A1)-COLUMNS(C1:$K1)+1,1),"")
 
 
ちなみに条件付き書式でカンマを付ける場合ですが、「-」記号が来る場合も考慮する必要があるかもしれません。
その場合はこんな感じでしょうか。(前提次第です)
=ISNUMBER(D1+0)

回答
投稿日時: 17/10/01 16:30:19
投稿者: んなっと

TRIM(LEFT(RIGHT の方法、優れていますね。
時間をかけて調べるべきでした。
「同一セル内」の式もこれに修正します。
 
      A B C D  E F G  H I J
1 123456789 1 2 3 ,4 5 6 ,7 8 9
2  12345678   1 2 ,3 4 5 ,6 7 8
3  1234567    1 ,2 3 4 ,5 6 7
4   123456      1 2 3 ,4 5 6
5   12345        1 2 ,3 4 5
6    1234         1 ,2 3 4
7    123           1 2 3
8     12             1 2
9     0              0
 
B1
=IF(AND(MOD(10-COLUMN(A1),3)=0,LEN(ABS($A1))>10-COLUMN(A1)),",",)&TRIM(LEFT(RIGHT(" "&$A1,10-COLUMN(A1))))
右方向・→
 
※対応桁数を1桁増やすときは、3か所ある10も1増加させます。

トピックに返信