「ブロック機能」のリニューアルについて

初心者です。

今、下記のように並んでいるデータを、

グループ1 グループ2 グループ3 ・・・・
数値1-1 数値2-1 数値3-1 ・・・・
数値1-2 数値2-2 数値3-2 ・・・・
数値1-3 数値2-3 数値3-3 ・・・・

下のように並び変える方法は、コピペ以外にありませんでしょうか?

グループ1
数値1-1
数値1-2
数値1-3
グループ2
数値2-1
数値2-2
数値2-3
グループ3
数値3-1
数値3-2
数値3-3




宜しくお願い致します。

教えて!goo グレード

A 回答 (5件)

こんにちは



現在のデータのあるシートを、仮に「Sheet1」とします。
別シートのA1セルに
 =OFFSET(Sheet1!$A$1,MOD((ROW()-1),4),INT((ROW()-1)/4))&""
の数式を入力し、必要なところまで下方にフィルコピーします。
以上で、ご希望の表示が得られると思います。

必要であれば、A列を「コピー」-「値をペースト」で固定値化すればよいでしょう。
    • good
    • 0

関数なら


=b1 してセルの右下掴んでドラッグ
とか
    • good
    • 0

こんにちは


>下のように並び変える方法は、コピペ以外
>初心者です。
意図しない回答だとは思いますが

グループ1がA1セルの場合
Sub test()
Dim ary As Variant
Dim AnsArr
Dim i As Long, j As Long, n As Long
'ary = Range("A1").CurrentRegion
'Range("A1").CurrentRegion.ClearContents
ary = Range("A1:F4")
Range("A1:F4").ClearContents
ReDim AnsArr(UBound(ary, 1) * UBound(ary, 2))
For j = 1 To UBound(ary, 2)
For i = 1 To UBound(ary, 1)
AnsArr(n) = ary(i, j)
n = n + 1
Next
Next
Range("A1").Resize(UBound(AnsArr) + 1) = Application.Transpose(AnsArr)
End Sub

A1:F4の範囲が対象です。役に立たない回答と思いますので説明は割愛します。
    • good
    • 0

そうだね。

切り取って貼り付ける方が良いと思います。

「グループ1」と入力されているセルがA1セルとするなら……
「グループ2」のセルを選択して、
 Shift+Ctrl+↓
 Ctrl+X
 Ctrl+home
 Ctrl+↓
 ↓
 Ctrl+V
 Ctrl+Home
 Crtl+→
の操作を最後の列を貼り付け終わるまで繰り返しましょう。

 Shift+Ctrl+↓
  選択したセルから値が連続して入力されている最後のセルまで選択
 Ctrl+X
  切り取り
 Ctrl+home
  A1セルを選択
 Ctrl+↓
  A列の連続して値が入力されている最後のセルを選択
 ↓
  値が入力されているセルの下の空白セルを選択
 Ctrl+V
  貼り付け
 Ctrl+Home
  A1セルを選択
 Crtl+→
  右のセルが空白なので、値が入力されている右側の初めのセルを選択

こんな、ShiftキーやCtrlキーを組み合わせたショートカットを駆使すれば、
数式を作るよりも簡単に処理ができ、数式で汚すこともない。
    • good
    • 1

グループ1の数値1-3がA4セルだとしたら



1.A5に =B1
2.これを充分なセル数、下へコピー(例えばA200セルまで)
3.A5~A200まで選択コピー
4.これをB5以下へコピー、同様にC4以下、D4以下・・・・へコピー
5.A列を選択してコピー→値の貼り付け
6.B列以降右側を削除
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング