私は以下のようにテーブル内のデータを持っている:Excelで複数の行を1行に変換するにはどうすればよいですか?
私はテーブル内の、上記のようにデータを持っています。このテーブルには、多くのMMID M000071、M000073、....などがあります。選考基準は資産によって異なる場合があります。各MMIDには複数の日付が含まれている場合があります。
私は以下のように出力したい:
20数千人がテーブルにあります。だから私はこの仕事をする簡単な方法を見つけたいと思っています。
私は以下のようにテーブル内のデータを持っている:Excelで複数の行を1行に変換するにはどうすればよいですか?
私はテーブル内の、上記のようにデータを持っています。このテーブルには、多くのMMID M000071、M000073、....などがあります。選考基準は資産によって異なる場合があります。各MMIDには複数の日付が含まれている場合があります。
私は以下のように出力したい:
20数千人がテーブルにあります。だから私はこの仕事をする簡単な方法を見つけたいと思っています。
私にVBAを使用する提案を与える@Jeeped。
Excel VBAの数時間の学習を通して、私はこの問題を解決し、私が望む答えを得ることができました。
次のようにコード:
Option Explicit
Public Sub sort()
Dim j As Long
Dim cursor As Long
j = 2
cursor = 2
For j = 2 To 20150
X: If Worksheets("Sheet2").Cells(cursor, "A").Value = "" Then
Worksheets("Sheet2").Cells(cursor, "A").Value = Worksheets("Sheet1").Cells(j, "A").Value
Worksheets("Sheet2").Cells(cursor, "H").Value = Worksheets("Sheet1").Cells(j, "D").Value
Select Case Worksheets("Sheet1").Cells(j, "B")
Case "ACR"
Worksheets("Sheet2").Cells(cursor, "B") = Worksheets("Sheet1").Cells(j, "C")
Case "Microalbumin"
Worksheets("Sheet2").Cells(cursor, "C") = Worksheets("Sheet1").Cells(j, "C")
Case "eGFR"
Worksheets("Sheet2").Cells(cursor, "D") = Worksheets("Sheet1").Cells(j, "C")
Case "LDL_HDL_TotChol"
Worksheets("Sheet2").Cells(cursor, "E") = Worksheets("Sheet1").Cells(j, "C")
Case "HbA1C"
Worksheets("Sheet2").Cells(cursor, "F") = Worksheets("Sheet1").Cells(j, "C")
Case "UricAcid"
Worksheets("Sheet2").Cells(cursor, "G") = Worksheets("Sheet1").Cells(j, "C")
End Select
Else
If Worksheets("Sheet1").Cells(j, "A").Value = Worksheets("Sheet2").Cells(cursor, "A").Value Then
If Worksheets("Sheet1").Cells(j, "D").Value = Worksheets("Sheet2").Cells(cursor, "H").Value Then
Select Case Worksheets("Sheet1").Cells(j, "B")
Case "ACR"
Worksheets("Sheet2").Cells(cursor, "B") = Worksheets("Sheet1").Cells(j, "C")
Case "Microalbumin"
Worksheets("Sheet2").Cells(cursor, "C") = Worksheets("Sheet1").Cells(j, "C")
Case "eGFR"
Worksheets("Sheet2").Cells(cursor, "D") = Worksheets("Sheet1").Cells(j, "C")
Case "LDL_HDL_TotChol"
Worksheets("Sheet2").Cells(cursor, "E") = Worksheets("Sheet1").Cells(j, "C")
Case "HbA1C"
Worksheets("Sheet2").Cells(cursor, "F") = Worksheets("Sheet1").Cells(j, "C")
Case "UricAcid"
Worksheets("Sheet2").Cells(cursor, "G") = Worksheets("Sheet1").Cells(j, "C")
End Select
Else
cursor = cursor + 1
GoTo X
End If
Else
cursor = cursor + 1
GoTo X
End If
End If
Next
End Sub
私はこれが私のような他の誰かを助けることができると思います。
注:このプログラムを実行する前に、シート2のセルMESDATEをテキストとして設定する必要があります。それ以外の場合は、シート1のMSEDATEセルがDate型に変更されます。
re:* 'この仕事を簡単に行う方法を探したいです。' * - VBAでバリアント配列を使用します。 – Jeeped