プロが教える店舗&オフィスのセキュリティ対策術

エクセル初心者です。
添付画像の左にあるようなデータを、右のように横一列に並び替えたいです。

エクセルサイトの例を参考にindex、match関数とやらの組み合わせで名前だけは横並びにできたのですが、応用となるとさっぱりです。。。

個人データは実際には1000近くあり、子供が6人以上いる家庭もあります。
効率的な方法がございましたらどうかご教示いただけませんでしょうか?

「エクセル関数について」の質問画像

A 回答 (4件)

添附圖參照


次式を入力したセル G2 を右方及び下方にズズーッとオートフィル
=IF(INT((COLUMN(A1)-1)/3)+1>COUNTIF($A$2:$A$13,$F2),"",OFFSET($B$2,MATCH($F2,$A$2:$A$13,0)-1+(COLUMN(A1)-1)/3,MOD(COLUMN(A1)-1,3)))
「エクセル関数について」の回答画像4
    • good
    • 0

こんにちは!



画像が小さくて詳細がよく判らないのですが、
おそらくこういうコトだろうと推測して・・・
VBAになりますが一例です。

尚、元データはSheet1にあり、Sheet2に表示するとします。
(Sheet1の1行目、A列から項目行になっていて、データは2行目以降にあるとします)

標準モジュールにしてください。

Sub Sample1()
 Dim i As Long, myCol As Long
 Dim c As Range
 Dim wS As Worksheet
  Set wS = Worksheets("Sheet2")
   Application.ScreenUpdating = False
    wS.Cells.Clear
     With Worksheets("Sheet1")
      .Range("A:A").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("A1"), unique:=True
       For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
        Set c = wS.Range("A:A").Find(what:=.Cells(i, "A"), LookIn:=xlValues, lookat:=xlWhole)
         myCol = wS.Cells(c.Row, Columns.Count).End(xlToLeft).Column + 1
         If wS.Cells(1, myCol) = "" Then
          .Range("B1").Resize(, 3).Copy wS.Cells(1, myCol)
         End If
          .Cells(i, "B").Resize(, 3).Copy wS.Cells(c.Row, Columns.Count).End(xlToLeft).Offset(, 1)
       Next i
      wS.Range("A1").CurrentRegion.Borders.LineStyle = xlContinuous
     End With
   Application.ScreenUpdating = True
    wS.Activate
    MsgBox "完了"
End Sub

こんな感じでよいのでしょうかね。m(_ _)m
    • good
    • 0

文字が判讀困難な程、画像が不鮮明過ぎます。

    • good
    • 0

どういったルールで横並びにするのかが示されていませんので、


一般的なやり方を答えてみます。

まずは元の表で並べ替えを行います。
そののちに、区切りたい箇所から下を「切り取り」
並べたい位置に「貼り付け」をします。

こんだけです。マジで。

・・・
この際、キーボードのショートカットキーを使うと楽ができます。
Shiftキーを押しながら矢印キーを押すと選択範囲を広げることができます。
Ctrlキーを押しながら矢印キーを押すと入力されているセルの端までジャンプします。
ShiftキーとCtrlキーを押しながら矢印キーを押すと、入力されているセルの端までを選択します。
Ctrlキーを押しながら「X」キーを押すと「切り取り」。
Ctrlキーを押しながら「C」キーを押すと「貼り付け」。

例:
 A7セルを選択して、Shift+Ctrl+↓で、A7セルからA13セルまで選択します。
 その状態から、Shift+Ctrl+→ で、A7セルからD13セルまでの範囲を選択します。
 更にその状態から Ctrl+X で、A7セルからD13セルの範囲が「切り取り」されます。
 E2セルを選択して Ctrl+C で、「切り取り」したデータがE2セルからH8セルの範囲に「貼り付け」されます。

必要な回数だけ繰り返せば良いでしょう。
    • good
    • 0

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