[[20160816173957]] 『セル3つおきに反映させる』(サンパレス) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セル3つおきに反映させる』(サンパレス)

 Sheet1に,A1,A2,A3,A4・・・・と順にデータを入力します。
 このデータをSheet2のA1,A4,A7,A10・・・・とセル3つおきに
 データを反映させるようにマクロでしたいのですが,どうなりますか。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 マクロですか? 数式でもシンプルに処理できると思いますがマクロ処理の一例です。

 Sub Sample()
    Dim w As Variant
    Dim c As Range
    Dim x As Long

    x = 1

    With Sheets("Sheet1")
        With .Range("A1", .Range("A" & Rows.Count).End(xlUp))
            ReDim w(1 To .Rows.Count * 3, 1 To 1)
            For Each c In .Cells
                w(x, 1) = c.Value
                x = x + 3
            Next
        End With
    End With

    Sheets("Sheet2").Range("A1").Resize(UBound(w, 1)).Value = w

 End Sub

(β) 2016/08/16(火) 18:12


 数式なら Sheet2の A1 に =IF(MOD(ROW()-1,3)<>0,"",INDEX(Sheet1!A:A,INT(ROW()/3+1))) これを下にフィルコピーとか。

(β) 2016/08/16(火) 19:44


 分かりました。
 ありがとうございました。
(サンパレス) 2016/08/16(火) 20:30

 すみませんが、また教えてください。

 Sheet1に,A1,A2,A3,A4・・・・
      B1,B2,B3,B4・・・・
      C1,C2,C3,C4・・・・

 と入力し,これを

 Sheet2のA1,A4,A7,A10・・・・とセル3つおきに
     B1,B5,B9,B13・・・・とセル4つおきに
     C1,C6,C11,C16・・・・とセル5つおきに

 反映させたいのですが,どうでしょうか。
 自分でいろいろ試しましたが,うまくいきませんでした。

(サンパレス) 2016/08/17(水) 17:38


 基本的には数式であれマクロであれ

 ・3つおきの処理を 4つおき、5つおきに
 ・参照している A 列を B列、C列にかえる

 こういった変更をすればいいのですが?

 >>自分でいろいろ試しましたが,うまくいきませんでした。

 具体的に、どのように直し、その結果がどうだったのかを教えて下さい。

(β) 2016/08/17(水) 19:42


 もしかしたら、時間が取れなくなるかもしれないので、数式案のほうでいうと

 式の中の 3 を 3,4,5 とすべく 変数化して COLUMN(C1) に変えたものを

 A1 : =IF(MOD(ROW()-1,COLUMN(C1))<>0,"",INDEX(Sheet1!A:A,INT(ROW()/COLUMN(C1)+1)))

 これを C1 までフィルコピーし、そのまま下にフィルコピーといった感じです。

(β) 2016/08/17(水) 20:51


コメント返信:

[ 一覧(最新更新順) ]


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