家・車以外で、人生で一番奮発した買い物

お世話になります。
下記わかる方いらっしゃれば、ご教授頂きたいです。

●やりたいこと
 ある固定の数値に対し、1ずつ加算した連番を振り、上限値に達するまで出力する。
 上限値に達したら、また元の数値から1ずつ加算した連番を振り、上限値に達するまで
 出力する、という処理をN回繰り返したい。
 
 ただし、上限値は固定でなく、処理毎に値は異なる。
 また出力結果は、1列に収めたい。1回目の出力が終わったら、
 2回目の出力は、次の(下の)セル列から出力したい。

 例)
 3回処理を繰り返す場合
 
 ・ある固定の数値
  100

 ・上限値(1回目)
  105
  
 ・上限値(2回目)
  103
  
 ・上限値(3回目)
  107
 
 出力結果
 100
 101
 102
 103
 104
 105
 100
 101
 102
 103
 100
 101
 102
 103
 104
 105
 106
 107

A 回答 (6件)

関数でやる方法を紹介します。



添付図のようにレイアウトされている前提です。
黄色セルが数値入力欄で、オレンジ色セルが結果です。

◆手順
1.黄色セルに数値を入力します(プラスの値の前提になっています)。また、水色セルは空白とします(空白を条件として使っています)。
2.B4セルに『=IF(AND(B3="",A4=""),$A$2,IF(AND(B3=-1,A4=-1,A3>0),$A$2,IF(AND(A3="",A4<>0),-1,IF(AND(B3=B$2),-1,IF(AND(B3=-1),-1,B3+1)))))』と入力して、下方向、右方向に必要な分だけコピペします。
3.E4セルに『=IF(MAX(B4:D4)=-1,"",MAX(B4:D4))』と入力して、下方向にコピペします。

質問文の例では上限値は3回目まででしたが、実際にはもっと多いと推測します。4回目以上を設定するのであれば、手順3のMax関数の範囲を修正する必要があります。また、途中で増やす場合にはMax関数の範囲修正に加えて手順2のコピペを再度行うことをおすすめします。(参照セルのズレ防止)
「excelにて、ある固定値から連番を振り」の回答画像5
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。問題解決することが出来ました。助かりました。

お礼日時:2022/10/24 08:14

A2=$F$1


A3=IFERROR(IF(A2>=VLOOKUP(ROWS($F$3:$F$5),$E$3:$F$5,2,0),"",IF(A2<VLOOKUP(COUNTIF(A$1:A2,$F$1),$E$3:$F$5,2,0),A2+1,$F$1)),"")
下へフィルコピー
「excelにて、ある固定値から連番を振り」の回答画像6
    • good
    • 0

地道にコツコツと…(*^_^*)



C3: =MAX(E3:G3)
E5: =IF(ROW(D1)>E$3,NA(),$D$2+ROW(D1)-1)
A1: =IF(ROW(A1)>C$3*3,NA(),OFFSET($E$5,MOD(ROW(A1)-1,C$3),(ROW(A1)-1)/C$3))
A列全体を選択⇒Ctrl+C⇒A列上でマウスの右クリック⇒表示された
コンテキスト・メニュー上の上部の[貼り付けのオプション]直下の
[123](値)アイコンをツン⇒そのままの状態で Ctrl+G⇒[セル選択]
⇒“定数”に目玉入れ&“数式”(にはチェックを入れずに)配下の“エラー
値”のチェックはそのままで、他のチェックを全て外す⇒[OK]をツン
⇒選択された任意のセル上でマウスの右クリック⇒[削除]⇒“上方向
にシフト”に目玉入れ⇒[OK]をパシーッ
オ・シ・マ・イ(フ~)
「excelにて、ある固定値から連番を振り」の回答画像4
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。参考になりました。

お礼日時:2022/10/24 08:15

>上限値は固定でなく、処理毎に値は異なる。


そう言いながらも上限値を指定するための仕様が書かれていないので、適当にサンプルコードを書いてみました。こんな感じです。

Sub sample()
Dim v As Variant
For Each v In Array(105, 103, 107)
With Cells(Rows.Count, "A").End(xlUp).Offset(1)
.Value = 100
.DataSeries Rowcol:=xlColumns, Type:=xlLinear, Step:=1, Stop:=v
End With
Next
End Sub
    • good
    • 0

VBAでループを使えば、比較的簡単に実現できます。

    • good
    • 0

仰っていることは良く理解できたつもりです。


かなり難しそうなので、全くの初心者ではなかろう貴方は何処までならお出来になるのか教えてください。その部分は省略したいので。
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!