
画像のような表(A表からB表)にしたいのですがどうしてもできません。
VBAでも良いので教えてください。
A表
No | 項目1|項目2|項目3|・・・・・
1101 | 150 | | |
1101 | |200 |140 |
1111 | |100 |200 |
1121 | 200 |110 | |
↓
B表
No | 項目1|項目2|項目3|・・・・・
1101 | 150 |200 |140 |
1111 | |100 |200 |
1121 | 200 |110 | |
統合機能使ったんですが「何も統合されませんでした」と出ました。
No.4
- 回答日時:
No.2です。
例えば『1101』には『項目1の2行目』で 150 がありますが同じ『項目1』且つ『他の行』で値が存在するのかなって思ってただけです。
たまにキーワード毎に各集計をしたいって質問もあるものですから。
ありがとうございます。
『1101』には『項目1の2行目』で 150 がありますが同じ『項目1』且つ『他の行』で値が存在はしません。
No.1
- 回答日時:
こんにちは!
VBAになりますが、一例です。
元データはSheet1にあり、1行目は項目行でデータは2行目以降にあるとし、Sheet2に表示するとします。
標準モジュールです。
Sub Sample1()
Dim myDic As Object
Dim i As Long, j As Long
Dim lastRow As Long, lastCol As Long
Dim myStr As String, buf As String
Dim wS As Worksheet
Dim myKey, myItem, myAry
Set myDic = CreateObject("Scripting.Dictionary")
Set wS = Worksheets("Sheet2")
'//▼Sheet2のデータを一旦消去//
lastRow = wS.Cells(Rows.Count, "A").End(xlUp).Row
lastCol = wS.UsedRange.Columns.Count
If lastRow > 1 Then
Range(wS.Cells(2, "A"), wS.Cells(lastRow, lastCol)).ClearContents
End If
With Worksheets("Sheet1")
For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
myStr = .Cells(i, "A")
For j = 2 To .Cells(i, Columns.Count).End(xlToLeft).Column
If .Cells(i, j) <> "" Then
buf = buf & .Cells(i, j) & "_"
End If
Next j
buf = Left(buf, Len(buf) - 1)
If Not myDic.exists(myStr) Then
myDic.Add myStr, buf
Else
myDic(myStr) = myDic(myStr) & "_" & buf
End If
buf = ""
Next i
End With
myKey = myDic.keys
myItem = myDic.items
For i = 0 To UBound(myKey)
wS.Cells(i + 2, "A") = myKey(i)
myAry = Split(myItem(i), "_")
For j = 0 To UBound(myAry)
wS.Cells(i + 2, j + 2) = myAry(j)
Next j
Next i
Set myDic = Nothing
wS.Activate
MsgBox "完了"
End Sub
こんな感じではどうでしょうか?
※ 細かいエラー処理はしていません。m(_ _)m
ありがとうございます
参考にさせていただきます。
まだ初心者でして・・・
良かったら上記のVBは何がどのようなことをしているのか教えていただけたらと思うんですが・・・・・だめですか?
甘えすぎかもしれないんですが・・わからな過ぎて。
申し訳ございませんがよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
Oracle 2つのDate型の値の差を...
-
エクセルVBAで5行目からオート...
-
エクセルグラフの凡例スペース
-
Access テキスト型に対する指定...
-
Accessレポートで特定条件で改...
-
APN設定について教えていただけ...
-
SQL*Loaderでのゼロ埋め
-
オススメの見積書のテンプレー...
-
因子分析のフロア効果(床効果)
-
access2000:フォームで入力し...
-
SUBSTRING 関数に渡した長さの...
-
2行目を表示できますか?
-
正しく入力されていない項目も...
-
ORACLEでLONG項目からCHAR項目...
-
Excel パレート図作成について
-
accessで最小公倍数を求める
-
Access又はExcelで256項目を超...
-
エクセルマクロにて最終行まで...
-
保存された情報として表示され...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
保存された情報として表示され...
-
エクセルVBAで5行目からオート...
-
Oracle 2つのDate型の値の差を...
-
ワードで4段組みで文章を書い...
-
エクセルグラフの凡例スペース
-
Access テキスト型に対する指定...
-
SUBSTRING 関数に渡した長さの...
-
datファイルからaccessにインポ...
-
セルの右クリックで出る項目を...
-
複数のレコードを1つのレコード...
-
BIOSでAHCIに設定したいが、項...
-
Accessレポートで特定条件で改...
-
エクセルマクロにて最終行まで...
-
APN設定について教えていただけ...
-
必須入力項目と入力必須項目
-
Access又はExcelで256項目を超...
-
ORACLEでLONG項目からCHAR項目...
-
空白をそのままインポートする...
-
Accessで数値型にNULLをInsert...
おすすめ情報