いちばん失敗した人決定戦

エクセル使用半年ほどの初心者です。会社で専用ソフトを使用していてそのソフトをエクセルに変換することはできるのですが、画像左上のように出力され、縦の列が1900行ほどになります。
最終的イメージは右上のようにスッキリとしたいのですが、最初に下にある図のように条件をつけて
フィルターオプションで別シートに福岡、大分、佐賀・・・と並べてみました。
そこで問題なのが、
①県によって出荷する商品としない商品があるので同じ商品ごとに横に並べたい。
②フィルタオプションで得区分3を毎回手入力して抽出場所のセルの始まりもクリックして指定しているので
手間がかかること。
③これから毎月ずっと集計をしなければならないのでできたらマクロか関数など良い方法があれば使っていきたいこと。(ちなみにマクロは使ったことありません・・;)
可能なのであればセルやボタンへ県名を入力したらデータ抽出のなどできないものでしょうか・・・。
④出荷数÷データ区分の小数点は第一以下切り捨てしたいです。

こんなに条件がついてたらやはり初心者の私じゃ難しいでしょうか・・・?
ちょっとお伝えでききってない部分もあると思いますがイメージが伝われば幸いです。
詳しい方、よろしければお知恵を貸して下さい><;;

「抽出、マクロ関係になると思いますが毎月あ」の質問画像

A 回答 (4件)

画像が小さすぎて、現状が良く見えないのですが


横方向に 都道府県名
縦方向に 商品名
で何らかの数値を集計すると云う事でしょうか。
ピボットテーブルは試されましたか?
リボン 挿入
ピボットテーブル でウィザードに従っていきます。
横ラベルに 都道府県名
縦ラベルに 商品名 をドラックして
数値の部分を集計にドラックして、合計にする・
簡単すぎる説明で失礼しますが
やりたいことがあっていれば補足してください。
    • good
    • 0

とりあえず 一連の作業をオートマクロ(マクロの記録)で記述しその後マクロの編集で


毎回変わる部分をDim命令で変数にしといて、InputBoxで入力をうながしたらいいです。
ボタンは□でも○でも好きな図形にマクロの登録でよいです。
そんなにむずかしいもんじゃないし。
4番目の小数点などはオートマクロのみでもできるので初心者にちょうどいいかも。
最初からすべて記述しようなんて思ったら挫折しますよ。
    • good
    • 0

失礼ながら質問の文章を読んで何をされたいのかさっぱり分かりません。


「スッキリ」などと曖昧な表現を使わなくでください。
    • good
    • 0

こんばんは!


なかなか回答が付かないようなので・・・

>④出荷数÷データ区分の小数点は・・・
の「データ区分」とはC列の数値のコトでしょうか?
すなわち商品とか都道府県によってその値は決まっているのですかね?

とりあえず、商品によって「データ区分」の数値は決まっているという解釈での一例です。

↓の画像のようにSheet1の元データをSheet2に表示するようにしてみました。
セル内データは違っているかもしれませんが、やり方だけです。
標準モジュールにしてください。

Sub Sample1()
Dim i As Long, j As Long, lastRow As Long
Dim str As String, c As Range, wS As Worksheet
Set wS = Worksheets("Sheet2")
Application.ScreenUpdating = False
wS.Cells.Clear
With Worksheets("Sheet1")
.Range("B:B").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("A1"), unique:=True
lastRow = wS.Cells(Rows.Count, "A").End(xlUp).Row
Range(wS.Cells(2, "A"), wS.Cells(lastRow, "A")).Copy
wS.Range("B1").PasteSpecial Paste:=xlPasteValues, Transpose:=True
wS.Range("A:A").Clear
.Range("E:E").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("A1"), unique:=True
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
.Range("G:G").Insert
.Range("G1") = "ダミー"
With Range(.Cells(2, "G"), .Cells(lastRow, "G"))
.Formula = "=B2&""_""&E2"
.Value = .Value
End With
For i = 2 To wS.Cells(Rows.Count, "A").End(xlUp).Row
For j = 2 To wS.Cells(1, Columns.Count).End(xlToLeft).Column
str = wS.Cells(1, j) & "_" & wS.Cells(i, "A")
Set c = .Range("G:G").Find(what:=str, LookIn:=xlValues, lookat:=xlWhole)
If Not c Is Nothing Then
wS.Cells(i, j) = Int(WorksheetFunction.SumIf(.Range("G:G"), str, .Range("F:F")) / .Cells(c.Row, "C"))
End If
Next j
Next i
.Range("G:G").Delete
wS.Range("A1").ClearContents
wS.Columns.AutoFit
wS.Range("A1").CurrentRegion.Borders.LineStyle = xlContinuous
End With
Application.ScreenUpdating = True
wS.Activate
wS.Range("A1").Select
End Sub

※ 一発で解決!とはいかないと思いますが、
まずは叩き台としての回答です。m(_ _)m
「抽出、マクロ関係になると思いますが毎月あ」の回答画像1
    • good
    • 0

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