• ベストアンサー

エクセルで行を越えての貼り付け

X1~X100に数値が入っていて これを5列で1行おきとか2行おきとかに 並べ替えたいのですがアドバイスお願いいたします データーが100くらいなら良いのですが もっと多いので簡単な方法をアドバイスください X1~X100に数値 A1~E1に X1~X5 A1=X1 B1=X2 C1=X3 D1=X4 E1=X5 A5~G5に X6~X10 A5=X6 B5=X7 C5=X8 D5=X9 E5=X10 と言う風にしたい A1:E1をコピーして間に3行挟んでA5:E5に貼り付け するとデーターが A5~G5に X5~X9とずれてしまいます 4行挟んでコピーすれば正しく貼り付けますが 1行挟んでも2行挟んでも3行挟んでも 何行挟んでも良いようにするには どうすれば良いでしょうか よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。maruru01です。 仮にW1に1行置きなら「1」、2行置きなら「2」と間を空ける行数を入力しておくとします。 A1に、 =IF(MOD(ROW(),$W$1+1)=1,INDEX($X:$X,MOD(COLUMN()-1,5)+1+((ROW()-1)/($W$1+1))*5),"") と入力して、E1までコピー さらに、A1:E1を下の行へコピーします。 これで、W1の数値を変えると、それにしたがってA~E列も変化します。

kei3999
質問者

お礼

御礼が遅くなりました。 これを機会にエクセルを勉強いたしました。 おかげさまで解決いたしました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

関数式の解は名人芸になるようです。 VBAなら普通に記述するだけで出来ます。 ツール-マクロ-VBE-挿入-標準モジュールにコピペして F5で実行。 Cells(j,k)はj行k列のセルの値を示します。 Sub test03() k = 1: j = 1 For i = 1 To 100 Cells(j, k) = Cells(i, "X") k = k + 1 If k = 6 Then j = j + 4 k = 1 End If Next i End Sub ロジックは スタートをA1にする(k = 1: j = 1) X列の一行から100行まで(For i = 1 To 100)についてx列のi行をCells(j,k)に持ってくる。 持ってきたら次は同行次列へ持ってくる用意をする。 (k = k + 1) しかし次列が第6列(F列)になったら、(If k = 6 Then )A列に戻し、行を4行下へ空けたA列をポイントする。(j = j + 4 k = 1) (テストデータ)X1:X100に1から100を入れる。 オートフィルを利用できる。 (結果) A1:E1 1-5 A5:E5 6-10 A9:E9 11-15 A13:E13 16-20 ・・・

kei3999
質問者

お礼

お礼が遅くなりました。 大変参考になりました、ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • cazum
  • ベストアンサー率22% (2/9)
回答No.2

1.行を挟まずに表を作成。 2.その左に1,6,11,16...と数字を入れる 3.表が終わったら2,7,...、3,8,...と補完し 4.ソート ではダメですか?

kei3999
質問者

お礼

おかげさまで解決いたしました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
noname#9284
noname#9284
回答No.1

もっと多いと思いますが、X列の行を仮に100行とします。 3行はさむ場合(4行ごと) Y1に =INDEX($X$1:$X$100,(COLUMN()-24),1) と入力してこれをACまでドラッグしてコピーし、 この5つのセルを必要な分だけ下までコピーします。 適当に。 エラー処理をしていませんので「#REF!」が出たらそのセルは削除します。 この四角い範囲をコピーし、別なシートのA1から形式を選択して値だけ張り付けます。 そのシートのG1に =IF(MOD(ROW(),4)<>1,"",INDIRECT(ADDRESS(ROW()/4+1,COLUMN()-6))) と入力し、右や下にコピーします。 もし2行はさむのでしたら(3行ごと) =IF(MOD(ROW(),3)<>1,"",INDIRECT(ADDRESS(ROW()/3+1,COLUMN()-6))) 1行はさむのでしたら(2行ごと) =IF(MOD(ROW(),2)<>1,"",INDIRECT(ADDRESS(ROW()/2+1,COLUMN()-6))) にします。 出た結果をコピーし、元のシートのA1から形式を選択して貼り付けで値のみ貼り付けます。

kei3999
質問者

お礼

ありがとうございました 御礼が遅れてすみません。 参考になりました。 おかげさまで解決いたしました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルのコピー貼り付け

      A   B   C  D   E   F 1 X1   X2  X3   X4   X5   X6 2 X7   X8  X9  X10  X11  X12 3  .. .. 4  .. 上記のように、他の座標からデーターを読み取って 表を作成したいのですが簡単にコピー貼り付けする 方法はないでしょうか?データーが多いので 列ごとの貼り付けは大変なので、アドバイスお願いします。

  • Excelで、行の組み換えについて

    A列からG列までデータが入っているリストがあるのですが、 例えば、1行目から50行目までと、51行目から100行目までを交互に組み入れるには どのようにすればよいでしょうか。   A B C D E F G 1 2 3 ・ ・ ・ 51 52 53 ・ ・ ・ といったものを、   A B C D E F G 1 51 2 52 3 53 ・ ・ ・ のようにしたいのですが、一気に操作できる方法があれば 教えていただきたく、よろしくお願いいたします。

  • エクセル 間隔が空いたデータをその間隔のままコピペ

    A列の5行目から10行目までのデータと D列の5行目から10行目までのデータと G列の5行目から10行目までのデータのデータをコピーし、 それぞれをB列、E列、H列(ひとつ右側の列)に貼り付けたいのです。 (実際にはG列以降の列もコピペしたいのですが、例としてA、D、G列にしてあります) 普通にB列に貼ると、B、C、D列に貼られてしまいます。 また、書式は貼りたくないので、値のみの貼り付けにしたいのです。 今はやり方が分からないので、A列をコピペ、D列をコピペ、・・・と列毎に処理して いますが、一度にまとめてコピペするにはどうすれば、良いのでしょうか?

  • エクセルでデータを1行づつ別の表に3行毎に表示

    下のようにもとデータがあり1行ごとのデータを別の表に3行おきに表示したい。 コピーすると3行おきのデータになってしまう。 元     希望     実際 A  →   A   →   A   B C D  →   B   →   D    E F G  →   C   →   G    いちいちコピーしないとだめでしょうか。

  • テキストファイルのデータをエクセルへコピーのやり方

    よろしくお願いします。 エクセル2000を使っています。 テキストのデータで A1/B1/C1    /はスペースです。 D1/E1/F1    データの長さは全部違います。 A2/B2/C2     D2/E2/F2 A3/B3/C3     D3/E3/F3      ・    ・(続く) といったものがあります。これをエクセルで    A列 B列 C列 D列 E列 1行 A1 B1 C1 D1 E1 2行 A2 B2 C2 D2 E2  ・・・ 3行 A3 B3 C3 D3 E3  (続く)          ・          ・(続く) という感じで別々のセルにいれて貼り付けしたいのです。 テキストデータを別々のセルに貼り付けする方法は 過去ログで「区切り位置」というのをつかえばいいというのはわかりましたが、この場合の複数行にわたるテキストデータをエクセルの1行に貼り付けする方法がわかりません。また、データの長さが違うために「区切り位置」もうまくいきません。 良い解決法をお願いします。

  • EXCELで、セル間隔をあけて貼り付けしたい。

    2つのEXCELファイルがあります。 ファイルAのデータが以下のようにありまして、    A  B  C  D  E --------------------------------- 1| 5  10  3  4  6 この横にならんだ数値をコピーして、ファイルBに    A  B  C  D  E --------------------------------- 1 | 5 2 | × 3 | 10 4 | × 5 | 3 6 | × 7 | 4 8 | × 9 | 6 こんな風に縦に、しかもセル間隔をひとつずつ空けてペーストしたいのです。 ファイルAの方の数値はSUBTOTAL関数を使用して出した結果の数値が入ったセルです。 貼り付けしたいセルだけをCtrlキーを押しながら選択して張り付けると 縦のセルの数×ファイルAの数値セルの数 で貼り付けされてしまいます。 「形式を選択して貼り付け」などもやってみましたが、うまくいきません。 なにかよい方法があったら教えていただきたいです。 よろしくお願いします。

  • エクセルでの行数カウント

    エクセルで A列 B列 1行 ●1 C ⇒カウント 2行 X1 D  3行 ●2 E 4行 X2 F 5行 ●3 C ⇒カウント 6行 ●4 D 7行 X3 E A列で「●」を含み、なおかつB列で「C」である行の数(例でいうと「2」)を求める 数式を教えてください。 ちなみに A列 B列 1行 ● C ⇒カウント 2行 X1 D  3行 ● E 4行 X2 F 5行 ● C ⇒カウント 6行 ● D 7行 X3 E であればA列が全く「●」に等しいものでカウントする場合は、下記の関数で計算できます。 {=SUM(IF(B1:B7="C",IF(A1:A7="●",1,0)))} COUNTIF関数では、"●*"のように「任意の文字」を指定することが可能ですが、IF関数の 中ではできないようです。

  • EXCEL

    A-B-C-D-E-F-G 1-A-W-A-1-B- 2-B-A-N-2-C- 3-C-K-A-3-B- 4-D-A-I-4-E- 5-E-R-X-5-A- 例えば,エクセルで表のようになっている場合に, 列AにF1の値(表の場合は文字B)で検索をかけ,検索に該当した行(表の場合では行2)の列Dの値をG1に表示する方法はあるでしょうか?? 簡単に言うと,列Gに自動的にFに対応するDの数値を入力したいのです.自動的に列Gを下の表のようにすることは可能でしょうか? A-B-C-D-E-F-G 1-A-W-A-1-B-2 2-B-A-N-2-C-3 3-C-K-A-3-B-2 4-D-A-I-4-E-5 5-E-R-X-5-A-4 投稿すると文字がずれてしまって表が見難くてすいません. どなたか,ご教授よろしくお願いします.

  • Excel 隣接しない列に一発で値貼り付け

    Excel 隣接しない列に一発で値貼り付け 隣接する列に表示されたデータを、同じシートの隣接しない列に一発で値の貼り付けがしたいのですが、可能でしょうか?   A     B     C    D    E         1 チェック タイトル 名前1  名前2 説明 2 ○    野菜   人参   牛蒡  これは根菜類 3 ○          胡瓜       うり科の野菜です 4 5 ○    果物   バナナ  柿   暖色系の色です   G       H         I     J           K     …… 1 計算式   B列を値貼り付け 計算式   C列を値貼り付け  計算式  …… ■A列  :C列に文字入力がある場合「○」が表示されます     {=IF(OR($C1>""),"○","")} ■B-E列:他のシートの任意のセルの値をコピー     {=IF(ISERROR(INDIRECT("'シート名'!セル")),"",INDIRECT("'シート名'!セル"))} *C列の空白の場合は全ての列が空白である(A列の式はそのため) *C列に文字がある場合のB、D、E列の空白には意味がある。 *コピーではなく値の貼り付けを行いたい。 *貼り付け左記の列は飛び飛びである。 *行の長さは可変する。 今までは、A列を「オートフィルタ」で「○」のみ表示させ、B-E列を1列づつH、J、L、N列へ貼り付けていました。マクロもいろいろ考えたのですが、初心者のため応用が出来ません。 関数でもマクロでも頑張ってトライしますのでお知恵を頂けますでしょうか。 PC環境:Win XP / Excel 2003

  • Excelで、同一データ行を知るには

    Excel2000で、 A列からD列までまったく同じデータの場合、色をつけてくれる方法を教えてください。 例えば、 A20=A100 かつ B20=B100 かつ C20=C100 かつ D20=D100 の場合、同じデータとして、20行目と100行目に色をつけるようにしたいです。 次善の策として、 A列からD列だけでなく、E列以降もすべてまったく同じデータの場合でもいいです。 なお、ソートしたり、行の順番を変えるのはナシにしてください。 また、A列からD列のデータをくっつけるのも、できれば避けたいです。(それぞれの列を比較して異なる場合でも、くっつけたら同じになる場合もありうるので。)

専門家に質問してみよう