[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『参照のコピーで元の表と張り付ける表の並びが違う場合』(だいこん)
元の表を参照にして別表にまとめています。
元の表は、入力しやすいようにデータ(約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
(だいこん) 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
もし、お時間がありましたら教えていただけると
助かるのですか…。
初心者の私には、この数式の意味を理解できませんでした。
応用できるようにこの式の意味を教えていただけないでしょうか。
お忙しいところ申し訳ありません。
(だいこん) 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.