プロが教えるわが家の防犯対策術!

エクセル 列のある部分だけを絶対参照、数回繰り返す方法

エクセル2013で、列のある部分だけを絶対参照し、これを数回繰り返す方法何かございましたら教えていただけませんか。(COUNTIF
Sの中で用いる予定です)
たとえばセルJ1,K1,L1でそれぞれA1,A2,A3を絶対参照、
セルJ2,K2,L2でそれぞれA1,A2,A3を絶対参照、
セルJ3,K3,L3でそれぞれA1,A2,A3を絶対参照、(ここまで一区切り)

セルJ4,K4,L4でそれぞれA4,A5,A6を絶対参照、
セルJ5,K5,L5でそれぞれA4,A5,A6を絶対参照、
セルJ6,K6,L6でそれぞれA4,A5,A6を絶対参照、(ここまで一区切り、以下続く)
と、VBAは用いずエクセルのみでする方法を教えていただけたら幸いです。
祝日なのにすみません。よろしくお願いいたします。

(まず、列を行のむきに絶対参照する方法もわからない状況です

A 回答 (4件)

自分ならOFFSET関数で参照範囲を指定しますね。


さらにOFFSET関数の中で基準セルからの距離をROW関数やCOLUMN関数を使って指定します。
INT関数を組み合わせると正確に指定できます。

考え方として、

J1、J2、J3セルはA1セルを参照するので、
 =OFFSET(A1,0,0)
K1、K2、K3セルはA2セルを参照するので、
 =OFFSET(A1,1,0)
L1、L2、L3セルはA3セルを参照するので、
 =OFFSET(A1,2,0)

J4、J5、J6セルはA4セルを参照するので、
 =OFFSET(A1,3,0)
K4、K5、K6セルはA5セルを参照するので、
 =OFFSET(A1,4,0)
L4、L5、L6セルはA6セルを参照するので、
 =OFFSET(A1,5,0)

とすることで可能です。
J1セルの数式をL1セルまでコピーすると、参照されるセルは横へずれますので、その値を縦方向の参照に使えば良い。
すると
J1セルは
 =OFFSET($A$1,COLUMN(A1)-1,0)
とすることでL1セルまでコピーした時に
 COLUMN(A1)-1
の部分が
 COLUMN(B1)-1
 COLUMN(C1)-1
になるため、
 0,1,2
と縦方向の指定を行う事ができます。
COLUMN関数を使っているので、縦方向へコピーしても返ってくる値は変わりません。

では4行目以降ではそこから3つ下げたセルを参照させるので、ROW関数とINT関数を組み合わせます。
4行目ではA1セルから下へ3つ目のセルを参照するので、
 INT((ROW(A1)-1)/3)*3
の数式を加えて3行おきに3つ下のセルを参照させるようにします。
するとJ1セルの数式は、
 =OFFSET($A$1,COLUMN(A1)-1+INT((ROW(A1)-1)/3)*3,0)
こんな感じになります。
    • good
    • 0
この回答へのお礼

遅くなりましたが、おかげさまで論文がもうすぐ仕上がりそうです。かなり切迫していたのでありがとうございました。

お礼日時:2017/09/27 18:21

式の入力で、「A1」を指定(入力)した直後に「F4」を押せば、


「$A$1」(絶対参照)に変化するはずです。
外したかしら?
    • good
    • 0
この回答へのお礼

ありがとうございます。絶対参照についてはまだまだ勉強中です。

お礼日時:2017/09/27 18:21

1.次式を入力したセル J1 を右に2列オートフィル


 ̄ ̄ =OFFSET($A$1,INT((ROW(A1)-1)/3)*3+COLUMN(A1)-1,)
2.範囲 J1:L1 を好きなだけ下方にオートフィル
    • good
    • 0
この回答へのお礼

おかげさまで論文がもうすぐ仕上がりそうです。offsetは難しいですが、また質問させていただくかもしれないのでよろしくお願いします!

お礼日時:2017/09/27 18:22

TRANSPOS関数は、もう試されましたか?まだのようでしたら、一度Excelのヘルプで確認してみて下さい。

    • good
    • 0
この回答へのお礼

わお、そんな関数があるのですね。今回は使いませんでしたが、きっとすぐにも使う機会があるだろうから勉強します!

お礼日時:2017/09/27 18:23

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