[[20140419081820]] 『参照のコピーで元の表と張り付ける表の並びが違う』(だいこん) ページの最後に飛ぶ

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

 

『参照のコピーで元の表と張り付ける表の並びが違う場合』(だいこん)

 元の表を参照にして別表にまとめています。
元の表は、入力しやすいようにデータ(約30項目)を横並びに作成していますが、
張り付ける表は、10項目×3行になっています。
そのため、「参照=」をコピーすると、元データの2行目からはセルがずれてしまい、うまくいきません。
どのようにしたら簡単にコピーできるでしょうか。

< 使用 Excel:Excel2013、使用 OS:Windows7 >


 データ範囲がA1:AD1 で、A2以降に書く場合、
  A2=A1
  A3=K1
  A4=U1
 として、A2:A4 を J2:J4 にコピー。あるいは、 
  A2=INDEX($A$1:$AD$1,(ROW(A1)-1)*10+COLUMN(A1))
 をA2:J4にコピーでどうでしょうか。
(Mook) 2014/04/19(土) 09:41

Mook様 ありがとうございました。
ちょっと説明が不十分で申し訳なかったのですが…。
データ範囲はA1:AD1で
コピー先をAE1〜に指定するとします。(元データに干渉しない位置)
1行目はできました。AE1:AN1,AE2:AN2,AE3:AN3にコピー
2行目以降はどうしたらいいでしょう。
A2:AD2のデータをAE5:AN5,AE6:AN6,AE7;AN7(印刷後カットして配るため1行あけています)にコピーします。
実は元データが100行くらいあり、一行ずつコピーしていけばいいと思いますが、大変な作業です。
ご教示いただければ幸いです。

(だいこん) 2014/04/19(土) 10:43


 後者の式でできたのであれば、その式を行ごとに適用するのではなく、
 元データ全体から位置を計算するようにすれば良いと思います。
=IF(MOD(ROW(A1),4)=0,"",INDEX($A:$AD,INT(ROW(A1)/4)+1,MOD(ROW(A1)-1,4)*10+COLUMN(A1)))
(Mook) 2014/04/19(土) 13:39

Mook様
ありがとうございました。できました!

もし、お時間がありましたら教えていただけると
助かるのですか…。
初心者の私には、この数式の意味を理解できませんでした。
応用できるようにこの式の意味を教えていただけないでしょうか。
お忙しいところ申し訳ありません。

(だいこん) 2014/04/19(土) 19:19


 式がわからないときは部分的に切り出して、セルで表示させてみると良いと思います。

 例えば、
 =IF(MOD(ROW(A1),4)=0,"□","■")
 を展開してみれば、4の倍数行目だけ□になることがわかると思います。

 INDEX 関数はまずヘルプを見てください。
 位置を行と列で指定しますが、それぞれ
 行 ・・・ INT(ROW(A1)/4)+1
 列 ・・・ MOD(ROW(A1)-1,4)*10+COLUMN(A1))
 ですので、これも同様に
 =INT(ROW(A1)/4)+1
 =MOD(ROW(A1)-1,4)*10+COLUMN(A1))
 としてみれば、行が 1,1,1,2,2,2,2,3,3,3,3,4,4,4,4 と4行単位になっている
 ことがわかると思います。
 列は、行に応じて 1〜10、11〜20、21〜30 を繰り返しています。

 ROW と COLUMN は式で渡したアドレスの行と列を返す関数です。
 左上の位置に A1 を渡すことで、そこから 1,2,3,4 という数値列を得られます。

 MOD は剰余(割った余り)なので、今回のような周期を持つ処理には良く使う
 関数ですので、覚えておくと良いと思います。

 まずは、式の部分部分を理解し、3を4に変えたらどうなるかなど、いろいろ
 試してみるとよいかと思います。
(Mook) 2014/04/19(土) 19:44

 ありがとうございました。
職場で困っていたので、大変助かりました。
エクセルの式は奥が深く興味深いですね。
頑張って勉強してみようかと思います。
(だいこん) 2014/04/19(土) 21:47

コメント返信:

[ 一覧(最新更新順) ]


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