[[20250808110428]] 『数字の数だけ番号を入力する方法』(名無し) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『数字の数だけ番号を入力する方法』(名無し)

どなたか教えてください。

A1のセルに数字が入力されたらB1へその数字の数だけ自動で番号を入れたいです。

例えば
   A      B
1   3     1,2,3
2   2     4,5
3   4     6,7,8,9

というように連番で1つのセルへ入力させることは可能でしょうか?

< 使用 Excel:unknown、使用 OS:unknown >


 >使用 Excel:unknown
使用しているバージョンがExcel2021〜
(スピルするバージョン)なら
B1
=TEXTJOIN(",",,SEQUENCE(A1))
B2
=TEXTJOIN(",",,SEQUENCE(A2,,SUM($A$1:A1,1)))
↓コピペ
(はてな) 2025/08/08(金) 11:26:27

 バージョンが2024や365なら
 B1 =LET(x,TEXTJOIN(",",,SEQUENCE(SUM($A$1:A1))),TEXTAFTER(x,",",A1+1,,,x)) 下コピー
(あ) 2025/08/08(金) 17:17:17

 バージョンが2024や365なら
 B1 =BYROW(A1:A3,LAMBDA(y,LET(x,TEXTJOIN(",",,SEQUENCE(SUM($A$1:y))),TEXTAFTER(x,",",y+1,,,x)))) 下コピーなし
(い) 2025/08/08(金) 17:38:58

LAMDAとBYROW使えば下コピーしなくていいんだろうなと思いながら使い方が分からなく断念してました。
いさんありがとうございます。
というより SUM($A$1:y) なんて書き方もできるんですね。
LAMDA恐るべし!
(あ) 2025/08/08(金) 17:45:52

 こんな風にするとよいかも知れません。B1セルに下記を入れて下さい。

 =LET(
     rng,    A1:A6,
     end,    SCAN(0,rng,LAMBDA(accum,y,accum+y)),
     start,  VSTACK(1,DROP(end,-1)+1),
     a,      REDUCE("",SEQUENCE(ROWS(rng)),
               LAMBDA(accum,x,
                     IF(INDEX(rng,x,1)=0,VSTACK(accum,""),
                        VSTACK(accum,TEXTJOIN(",",TRUE,SEQUENCE(INDEX(rng,x,1),1,INDEX(start,x,1))))
                     )
               )
             ),
     DROP(a,1)
 )

     A列
 1   3
 2   2
 3   4
 4   5
 5   6
 6   7
 などという例で試すとよいかも。
 # A列のセルの値が0や空白の時にもエラーにならないよう修正しました。
 (8/8 21:15)

(xyz) 2025/08/08(金) 19:47:09


 トピ主様の例だと上手くいってましたがその例しか上手くいかない関数でした。申し訳ないです。
 B1 =TEXTJOIN(",",,SEQUENCE(A1,,INDEX(CHOOSEROWS(SEQUENCE(SUM($A$1:A1)),A1*-1),1))) 下コピー
 多分問題ないはず・・・
 LAMDAは難しすぎて無理でした。(識者の方お願いします)
(あ) 2025/08/08(金) 21:23:11

 SEQENC関数の開始に与える配列が求まれば、あとはMAP関数でできるんじゃないかと
 =LET(list,A1:A3,
     start,DROP(SCAN(1,VSTACK({0},list),SUM),-1),
     MAP(list,start,LAMBDA(d,s,ARRAYTOTEXT(SEQUENCE(d,,s))))
 )
(´・ω・`) 2025/08/08(金) 21:40:20

 MAP関数を使うんですね。chatgptに質問しながら作ってみました。間違っていたらすみません。
 =MAP(A1:A6,LAMBDA(n,TEXTJOIN(",",,SEQUENCE(n,,SUM(A1:n)-n+1))))
(あ) 2025/08/08(金) 22:02:17


質問者のバージョン度外視で、
ここまで盛り上がれるってステキ
(樫の木ムック) 2025/08/08(金) 22:46:30

   A    B   C D E F G H I J K L M N O P Q R S T U V W X Y Z
1 数値個数 完成形 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
2    3 1,2,3  1 2 3
3    2 4,5      4 5
4    4 6,7,8,9      6 7 8 9
5    1 10            10

式 =IF(OR(COLUMN(A2)<SUM($A$1:$A1)+1,COLUMN(A2)>SUM($A$1:$A2)),"",C$1)
を入力したセル C1 を右方20列&下方にオートフィル
式 =TEXTJOIN(",",,C2:XFD2) を入力したセル B2 のフィルハンドルを憎々し気に「エイヤッ!」とダブルクリック
(Mike) 2025/08/11(月) 07:10:48


「入力したセル C1 を」の C1 は C2 に置き変えてね。
(余計なお世話) 2025/08/17(日) 13:55:51

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.