1173362517 エクセルの関数でお願いします。なるべくVBAは・・・<(_ _)>

=コピー元シート!●○の形式で絶対参照をするとき、●○の部分を簡単に変更していきたいのです。
添付画像の通りですが
(1)行列を入れ替えて値コピーをするとき、絶対参照を簡単に入力する方法が知りたい
(2)43行ごとに飛んでいる同列のデータを別のシートに整然と並べるための絶対参照の方法が知りたい。

エクセルのプロの方々!いかがでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/03/08 23:02:00
  • 終了:2007/03/09 23:14:05

ベストアンサー

id:castiron No.4

castiron回答回数418ベストアンサー獲得回数302007/03/09 01:10:45

ポイント50pt

まず質問者さんがやりたいことは絶対参照じゃなくて相対参照ですよね?(画像がそうなっているから)

1個だけ記述して後はドラッグでコピーみたいなことをやりたいんですよね?

そういう前提で話を進めていきます。(コメントをオープンしていただけるとうれしかった)

ちなみに私はExcelを普通に使っているだけでプロでも何でもないのでスマートのスの字もありません。

(1)

=INDEX(Sheet1!$A$1:$C$4,COLUMN()-COLUMN($A$1)+1,ROW()-ROW($A$1)+1)

Sheet1!$A$1:$C$4:コピーしたい範囲(Sheet1!$A:$Cでも可)

COLUMN($A$1):コピー先の先頭のセル

これを使えば縦横を入れ替えたコピーが出来ます。

ただこれを見て分かるとおりこんなのやるくらいなら普通に行列を入れ替えてコピーをチェックした方が早いですね。

VBAをいやがっているようですがこういうことやるにはVBAの方が汎用性があり簡単な操作で実現できますよ。

多分自分でマクロを記録してちょっといじれば使えるようになると思います。

(2)

=INDEX(Sheet1!$L:$N,(ROW()-ROW($AA$1))*43+1,COLUMN()-COLUMN($AA$1)+1)

Sheet1!$L:$N;コピー元範囲

ROW($AA$1):コピー先先頭セル

これは関数使った方がいいかもしれませんね。

http://q.hatena.ne.jp/answer

id:anglar

ばっちりです。これがやりたかったのです。感謝。

2007/03/09 23:10:45

その他の回答(4件)

id:llusall No.1

llusall回答回数505ベストアンサー獲得回数612007/03/08 23:05:40

数式の入力中にF4キーを押します。

絶対参照に変換されます。

このような回答でよかったでしょうか?

id:anglar

素早く回答していただきましたが解答ではありません。すみませんが、添付画像を見てもらえませんか?

2007/03/08 23:13:42
id:rikuzai No.2

りくっち回答回数1366ベストアンサー獲得回数1412007/03/08 23:59:14

ポイント30pt

1.TRANSPOSE配列関数という方法があります。

http://plaza.rakuten.co.jp/urawazakun/diary/200505300002/

例示の内容の場合だと、

まずAA1に

=TRANSPOSE(コピー元シート!$L$4:$N:$9)

と入力。

AA1を左肩にしてコピー先シートの転記範囲(行列入れ替え済みの範囲)を選択し、

F2キーを押します。

(これで数式が表示)

そのまま[Ctrl]+[Shift]+[Enter]で決定。

(配列数式のため)

範囲選択が間違っていなければ、ずばっと行列が入れ替えられた値が絶対参照ではり付きます。



2.リンク貼り付けを使います。

元データ範囲の全体(不要な行も全て)を選択してコピー。

コピー先シートに「形式を選択して貼り付け」の「リンク貼り付け」にチェックしてOKします。

これでデータは参照ではりつきます。

後は、コピー先シートの不要行を、フィルタなどで選択して行削除すれば、

参照が残ったままデータが並びます。



以上ご参考まで。

id:anglar

ありがとうございました。TRANSPOSE、初めて知りました。

2007/03/09 23:09:21
id:nandedarou No.3

nandedarou回答回数230ベストアンサー獲得回数342007/03/09 00:07:40

提示された図では、AA1:AF3がデータ表示領域ですが、私の考えた方法の都合上、データ表示領域を、AB2:AG4に変更して説明します。


(1)

コピー先シートでデータを表示したい領域の1つ上の行と一つ左の列に、次のように順に整数を入れます。

※ここがセルAA1(このセルは何も入れない)

 |0|1|2|3|4|5|

0|

1|

2|


データを表示した領域の左上のセルに次の関数を書きます。

セルAB2に=OFFSET(コピー元シート!$L$4$,AB$1,$AA2)

セルAB2をAG2まで横にコピーして、

領域AB2:AG2を選択し、AB4:AG4まで下にコピーすれば出来上がりです。


(2)※(1)の応用です。

AA2に4と入れて、AA3に=AA2+47と書き、AA3を必要な分だけ下にコピーしてます。

セルAB2に=OFFSET(コピー元シート!$L$4$,$AA2,AB$1)

と書き(1)と同様にデータ領域すべてにコピーして出来上がりです。


※見せたくない列や行は、選択して右クリック→「表示しない」をクリックして下さい。

ダミー

http://q.hatena.ne.jp/answer

id:anglar

ありがとうございました。参考にさせていただきます。

2007/03/09 23:09:50
id:castiron No.4

castiron回答回数418ベストアンサー獲得回数302007/03/09 01:10:45ここでベストアンサー

ポイント50pt

まず質問者さんがやりたいことは絶対参照じゃなくて相対参照ですよね?(画像がそうなっているから)

1個だけ記述して後はドラッグでコピーみたいなことをやりたいんですよね?

そういう前提で話を進めていきます。(コメントをオープンしていただけるとうれしかった)

ちなみに私はExcelを普通に使っているだけでプロでも何でもないのでスマートのスの字もありません。

(1)

=INDEX(Sheet1!$A$1:$C$4,COLUMN()-COLUMN($A$1)+1,ROW()-ROW($A$1)+1)

Sheet1!$A$1:$C$4:コピーしたい範囲(Sheet1!$A:$Cでも可)

COLUMN($A$1):コピー先の先頭のセル

これを使えば縦横を入れ替えたコピーが出来ます。

ただこれを見て分かるとおりこんなのやるくらいなら普通に行列を入れ替えてコピーをチェックした方が早いですね。

VBAをいやがっているようですがこういうことやるにはVBAの方が汎用性があり簡単な操作で実現できますよ。

多分自分でマクロを記録してちょっといじれば使えるようになると思います。

(2)

=INDEX(Sheet1!$L:$N,(ROW()-ROW($AA$1))*43+1,COLUMN()-COLUMN($AA$1)+1)

Sheet1!$L:$N;コピー元範囲

ROW($AA$1):コピー先先頭セル

これは関数使った方がいいかもしれませんね。

http://q.hatena.ne.jp/answer

id:anglar

ばっちりです。これがやりたかったのです。感謝。

2007/03/09 23:10:45
id:nandedarou No.5

nandedarou回答回数230ベストアンサー獲得回数342007/03/09 02:13:43

ポイント30pt

申し訳ありませんが、ケアレスミスがありましたので、再回答いたします。

※添付画像では、AA1:AF3がデータ表示領域ですが、私の考えた方法の都合上、データ表示領域をAB2:AG4に変更して説明します。


(1)

コピー先シートでデータを表示したい領域の1つ上の行(AB1:AG1)と一つ左の列(AA1:AA4)に、次のように0~5、0~2の整数を入れます。

  AA|AB|AC|AD|AE|AF|AG|
1|  | 0| 1| 2| 3| 4| 5|
2| 0|  |  |  |  |  |  |
3| 1|  |  |  |  |  |  |
4| 2|  |  |  |  |  |  |

「AB2」に「=OFFSET(コピー元シート!$L$4,AB$1,$AA2)」と入力し、データ領域すべてにコピーします。(セルAB2をAG2まで横にコピーして、領域AB2:AG2を選択し、AB4:AG4まで下にコピーすれば出来上がりです。)


(2)※(1)の応用です。

「AA2」に「4」と入れて、「AA3」に「=AA2+43」と書き、AA3を必要な分だけ下にコピーします。

「AB2」に「=OFFSET(コピー元シート!$L$4,$AA2,AB$1)」と入力し、(1)と同様にデータ領域すべてにコピーして出来上がりです。


※見せたくない列や行は、選択して右クリック→「表示しない」をクリックして下さい。

http://q.hatena.ne.jp/answer ダミー

id:anglar

ありがとうございました。参考にさせていただきます。

2007/03/09 23:11:08

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません