[[20251016134550]] 『日付を複数回コピーペーストするのを繰り返したい』(緑茶) ページの最後に飛ぶ

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

| 全文検索 | 過去ログ ]

 

『日付を複数回コピーペーストするのを繰り返したい』(緑茶)

下記のようにスプレットシートのE3セル以降の行とF3以降の行に日付の入力があります。
E3以降とF3以降の行はどんどん追加されていきます。

E2に入力される数の分だけ日付をコピーしてH3以降とI3以降の行に表示させたい場合の数式を教えていただけないでしょうか。

   E| F
3| 2025/10/27(月)  2025/11/2(日)
4| 2025/11/3(月) 2025/11/9(日)
5| 2025/11/10(月) 2025/11/16(日)

E2セルに数を入力(例:2)

  H|I
3|2025/10/27(月)  2025/11/2(日)
4|2025/10/27(月)  2025/11/2(日)
5|2025/11/3(月) 2025/11/9(日)
6|2025/11/3(月) 2025/11/9(日)
7|2025/11/10(月) 2025/11/16(日)
8|2025/11/10(月) 2025/11/16(日)

< 使用 アプリ:スプレットシート、使用 OS:unknown >


できるのかな?
GASじゃないですか?
(ゆたか) 2025/10/16(木) 14:14:48

コピーして回数分貼り付けしてソートではダメなんですか?
(思いつき) 2025/10/16(木) 14:25:40

 スプレッドシートは知らないので、Excel365での例です
 =CHOOSEROWS(E3:F5,TOCOL(MAKEARRAY(ROWS(E3:F5),E2,LAMBDA(r,c,r))))

 スプレッドシートへの対応はご自分でおねがいします
(´・ω・`) 2025/10/16(木) 14:46:27

 別の方法です。

 Excel365でもGoogle Spreadsheetでも動作すると思います。(少なくとも手元では動作しました)
 =LET(
     rng,E3:F5,
     n,E2,
     a,If(n=1,rng,REDUCE(rng,SEQUENCE(n-1),LAMBDA(accum,x,VSTACK(accum,rng)))),
     SORT(a)
  )

 なお、こんな風にして引数をまとめることもできます。
 =LAMBDA(rng,n,
     LET(
         a,If(n=1,rng,REDUCE(rng,SEQUENCE(n-1),LAMBDA(accum,x,VSTACK(accum,rng)))),
         SORT(a)
     )
 )(E3:F5,E2)

(xyz) 2025/10/17(金) 07:58:05


 Google Spreadsheetにある「名前付き関数」という仕組みを利用すると、
 その都度式を入れずに済みます。
 つまり、
  =MY_FUNC(E3:F5, E2)
 とするだけで結果が得られます。
 (Excelで言うところの関数の名前定義です。)

 設定方法は以下。
 (1)
 関数名: 例えば  MY_FUNC とします。

 (2)
 引数のプレースフォルダ:
 引数2つをひとつずつ指定します。(これに気づかず、苦労したね)
 ・最初の引数(例:range)を指定して  Enterキーを押す
 ・二つ目の引数(例:cell)を指定して Enterキーを押す
 です。

 (3)
 数式の定義
 =IF(cell=1, range,
     LET(a,REDUCE(range,SEQUENCE(cell-1),LAMBDA(accum,x,VSTACK(accum,range))),
         SORT(a)
     )
  )
 とします。
(xyz) 2025/10/17(金) 11:06:05

コメント返信:

[ 一覧(最新更新順) ]


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