• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数の縦方向に並んだ表を並べ変える方法)

複数の縦方向に並んだ表を並べ変える方法

このQ&Aのポイント
  • 縦方向に並んだ表を別の形式に並べ替える方法がわからないと困っています。
  • 質問文章の表をセルの値を取得して新しい表に並べ替える方法を教えてください。
  • Excelの操作方法がわからないため、表の並べ替えができません。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! お望みの関数ではありません。 関数で何とかできるかもしれませんが、 手っ取り早くVBAでやってみました。 規則性としては B列に「Q]という文字がある行からA列の空白セルの一つ前までを一つの塊りとしています。 ↓の画像のようにSheet1のデータをSheet2に表示するようにしています。 Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに ↓のコードをコピー&ペースト → Excel画面に戻りマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, cnt As Long, myRow As Long, wS As Worksheet Set wS = Worksheets("Sheet2") wS.Cells.Clear With Worksheets("Sheet1") For i = 1 To .Cells(Rows.Count, "A").End(xlUp).Row If InStr(StrConv(.Cells(i, "B"), vbNarrow), "Q") > 0 Then myRow = i + 1 Do While .Cells(myRow, "A") <> "" myRow = myRow + 1 Loop cnt = cnt + 1 Range(.Cells(i, "A"), .Cells(myRow - 1, "B")).Copy wS.Cells(1, 2 * cnt - 1) i = myRow End If Next i wS.Range("A1").CurrentRegion.Borders.LineStyle = xlContinuous wS.Columns.AutoFit End With End Sub 'この行まで ※ 関数でないので データ変更があるたびにマクロを実行する必要があります。m(_ _)m

Tomo7755
質問者

お礼

ご回答ありがとうございました。 本件については解決しましたが、別件で困っていることがありますので 別途質問をあげさせていただきます。<m(__)m>

その他の回答 (1)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.2

>当方、Windows7でExcel2010です。 C2に次の数式を設定して下へコピーしてください。 =IFERROR(VLOOKUP(A5,A$8:B$12,2,FALSE)&"","") 但し、この数式は提示された模擬データの範囲のみを対象にしていますので実際のデータに合わせて検索範囲を変更してください。 尚、A列の番号に重複が無いものとします。 VLOOKUP関数で検索値が見付からないときはエラーになりますのでIFERROR関数でエラーのときに空欄にします。 また、A列の検索で検出できたときに同じ行のBセルが未入力では数値の0が返りますのでこれを空欄にするため返り値&""とすることで空欄になるよう配慮しています。

関連するQ&A

専門家に質問してみよう