| 
    
     |  | ▼ハチ さん: すみません、上で返信を書いている後にハチさんの投稿に気付きました。
 ありがとうございます!
 
 >このデータには「項目行」はあるのでしょうか?
 項目行、というのは、以下のような、見出しのようなものですか?
 
 元データ
 名前    数量
 aaa/    4
 aaa/test1  3
 aaa/test2  1
 bbb/    6
 ccc/    8
 ccc/test1  4
 ddd/test1  6
 ddd/test2  4
 eee/    2
 eee/test2  3
 ↓
 出したい結果
 名前    数量
 aaa/    8
 bbb/    6
 ccc/    12
 ddd/    10
 eee/    5
 
 ハチさんに教えていただいた、
 =LEFT($A2,FIND("/",$A2))を利用すると・・・
 名前    数量
 aaa/    4
 aaa/     3
 aaa/     1
 bbb/    6
 ccc/    8
 ccc/     4
 ddd/     6
 ddd/     4
 eee/    2
 eee/     3
 というデータができました。
 
 そしてピボットテーブルを作成(ピボットテーブルというのを今回はじめて知りました。。。)すると、出したい結果がでました!ありがとうございます。
 これの一連を、「マクロの記録」で登録したので、とりあえずのコードを書いておきます。
 
 Sub Macro1()
 Columns("A:B").Copy
 Columns("D:D").Select
 ActiveSheet.Paste
 Range("D2").FormulaR1C1 = "=LEFT(RC1,FIND(""/"",RC1))"
 Range("D2").AutoFill Destination:=Range("D2:D11"), Type:=xlFillDefault
 ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
 "Sheet1!R1C4:R11C5").CreatePivotTable TableDestination:= _
 "[Book1.xls]Sheet1!R1C7", TableName:="ピボットテーブル3", DefaultVersion:= _
 xlPivotTableVersion10
 With ActiveSheet.PivotTables("ピボットテーブル3").PivotFields("名前")
 .Orientation = xlRowField
 .Position = 1
 End With
 ActiveSheet.PivotTables("ピボットテーブル3").AddDataField ActiveSheet.PivotTables( _
 "ピボットテーブル3").PivotFields("数量"), "合計 / 数量", xlSum
 ActiveWorkbook.ShowPivotTableFieldList = False
 End Sub
 
 これをもとに、これから自分のやりたい方向へ改変していきたいと思います。
 まずは。。自分のやりたいことを関数を使って実現できるようにならないと話にならないことがわかりました。。。(遅いですが。。)
 何をどうしたいのか、考え方や伝え方を教えてくださったみなさま、
 ありがとうございました!
 
 
 |  |