- ベストアンサー
規則に基づく貼り付けの仕方<エクセル>
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず次の通り(後述参照)にコピーして貼り付けて埋めれば出来ます。 変更前:「7」×3 B2に =INDEX(Sheet1!$J$2:$L$8,1+MOD(COLUMN(B2)-2,7),INT((COLUMN(B2)-2)/7)+1) 変更後:「21」×数えるのがメンドクサイぐらいの列数 B8に =INDEX([ブック名.xlsx]シート名!$J$2:$AM$22,1+MOD(COLUMN(B8)-2,21),INT((COLUMN(B8)-2)/21)+1) #言わずもがなですが シート名やブック名.xlsxの部分は,ファイルの拡張子を含めてキチンと確認してから数式を作成すること。 それで。 結局お仕事の進行について具体的な説明がありませんでしたが,こういった式を一回埋めて備えておき,あとは元データが記入されると勝手に結果が並ぶのを待つという仕事であるなら,こんなイミフメイの(自分では考えたくもないような)数式をわざわざ使わずに,前述したように単純な参照式を並べて備えておけばそれで良いお話ということです。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17070)
画像がぼやけて、読み取りにくい。 今後はセルの値を質問文に貼り付けて、説明してほしい。 J2:L8をコピーし B2をポイントして 行列を入れ替えて貼りつけ B2:I4にデータが移る。 でできることとはどう違うのですか。 くり返しが多数回で(少しか割るところあり)作業がイヤならプログラムにやらせるほか無い。 現在している操作を、マクロの記録をとり、多少修正してでやるとかVBAでプログラムを組むとかになるでしょう。
補足
ごめんなさい、大きすぎて画像が不鮮明に なってしまいました。そして回答ありがとうございます。 21個を7個ずつ順番にB2-V2という風に同じ横列に並ばせたいのです。 下の方への捕捉でも書きましたが、本当はもっと膨大な量なので、 単純な貼り付けではとても作業が追いつきません。 プログラミング以外で何か方法はございますでしょうか?
- keithin
- ベストアンサー率66% (5278/7941)
>一気に貼りつける方法はあるのでしょうか? たとえば B2に =INDEX(Sheet1!$J$2:$L$8,1+MOD(COLUMN(B2)-2,7),INT((COLUMN(B2)-2)/7)+1) と記入,コピーして右に全27個一気に貼り付けば出来ます。 実際には,こんなシチメンドクサイ数合わせの数式をイチイチ考えている間に, 7×3をコピーして行列入れ替えて貼り付け 2段目を1段目の続きの横にドラッグ 3段目を2段目の続きにドラッグ してしまったほうが,あっさり仕事は片付きます。 そうはいかない「具体的な仕事の進行の正確な情報」をキチンと添えてご相談を投稿してみると,トータルで結局どうするのが一番効率的なのか,また皆さんから良いアドバイスが色々寄せられると思いますよ。 #個人的には仕事に先行して貼り付け先シートに適切な =Sheet1!J2 タイプの数式を埋めておき(※参照),7×3のデータを記入すればそれだけでもう答えが出ているように備えておくのが一番簡単だと思います。が,上述したように具体的な仕事の段取りが判りませんので,判断のしようが無いってとこですが。 ※ Sheet1!J2 と=を付けずにセルに記入して右にあと6個ドラッグする 計7個のセルを選択し,Ctrl+Hで置換を出して Sheet を =Sheet に全て置換する
補足
素早いご回答ありがとうございます。 知人にバレるのが嫌なので具体的には 書きませんでしたが、確かにおっしゃる通りですね。 ではもっと具体的にお話します。本当は例と比べ 著しく膨大な量のデータです。 J2-AM22までの範囲をJ2-J22,K2-K22・・・・のように 21個ずつ一気に横に並べたいのです。 貼り付け先は別のエクセルファイルのB8-XG8です。 お手数おかけしますが具体的な数式を教えて頂けないでしょうか?
お礼
教えて頂いた数式を入力してみたらあっさり行きました。 お陰様で作業がものすごく捗ります。 本当にありがとうございました。