表題の質問をさせていただきます。よろしくお願いいたします。
A列には商品名 B列には販売数があるとします。
商品には一回しか出てこない物や何度も出てくるものがあります。
そこで、販売数が最大値のみの重複しない商品データにする方法をお聞きしたいのです。
できれば非表示的な処理ではなく不要行削除が望ましいです。
例 下の場合
りんご 3(重複商品の最大値)
みかん 5(単独商品)
りんご 1
バナナ 6(単独商品)
りんご 2
イチゴ 2(重複商品の最大値)
イチゴ 1
↓にしたいのです。
りんご 3
みかん 5
バナナ 6
イチゴ 2
よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
No2 merlionXXです。
myDic自身が配列だったのでもっと簡潔な書き方が出来ました。
ご参考のため各コードにコメントも付けておきました。
Sub test02()
Dim myDic As Object '変数宣言
Dim c As Range '変数宣言
Set myDic = CreateObject("Scripting.Dictionary") 'myDicを用意
For Each c In Range(Cells(1, "A"), Cells(Rows.Count, "A").End(xlUp)) 'A列の各データについて
If Not myDic.exists(c.Value) Then 'myDicになければ
myDic.Add c.Value, c.Offset(0, 1).Value '追加しB列データを結びつける
Else 'myDicにあれば
myDic(c.Value) = IIf(myDic(c.Value) < c.Offset(0, 1).Value, c.Offset(0, 1).Value, myDic(c.Value)) 'B列データの大きい方を結びつける
End If
Next c '繰り返し
Set ns = Worksheets.Add(After:=ActiveSheet) 'シートを追加
ns.Range("A1").Resize(myDic.Count, 1).Value = Application.Transpose(myDic.Keys) 'A列にデータ
ns.Range("B1").Resize(myDic.Count, 1).Value = Application.Transpose(myDic.Items) 'B列に結びつけデータ
Set myDic = Nothing
Set ns = Nothing
End Sub
お返事ありがとうございます。
前日のお礼時に書いた内容までは、まだ解決できていないのですが、当初質問させていただいた内容については無事に解決いたしております。
時間が掛かると申し訳ないので、いちど締め切らせていただこうと思います。
この度は本当にありがとうございました。
No.2
- 回答日時:
VBAで行う一例です。
別シートを作成し、そこに抽出します。
Sub test02()
Dim myDic As Object
Dim c As Range
Dim myKey(), myItem()
Set myDic = CreateObject("Scripting.Dictionary")
For Each c In Range(Cells(1, "A"), Cells(Rows.Count, "A").End(xlUp))
If Not myDic.exists(c.Value) Then
myDic.Add c.Value, c.Offset(0, 1).Value
Else
myDic(c.Value) = IIf(myDic(c.Value) < c.Offset(0, 1).Value, c.Offset(0, 1).Value, myDic(c.Value))
End If
Next c
myKey() = myDic.Keys
myItem() = myDic.Items
' MsgBox Join(myKey()) & Join(myItem())
Set ns = Worksheets.Add(After:=ActiveSheet)
ns.Range("A1").Resize(myDic.Count, 1).Value = Application.Transpose(myKey())
ns.Range("B1").Resize(myDic.Count, 1).Value = Application.Transpose(myItem())
Set ns = Nothing
End Sub
お返事ありがとうございます。
早速 試させていただき無事に動作が出来まして、今は勉強しながら既存シートへの上書きへの変更や商品名がA列に無いときなどの場合の実験をしているところでした。(ともに うまくできました)
するとお礼をする前に次のお返事が入っており感激しているところです。
しかも、コードの解説付きで大感謝です。
さらに、参考にさせていただきながら改造をしてみようと思っております。
のちほど追加の質問をさせていただこうと思いますので もしよろしければご教授の程よろしくお願いいたします。
ちなみに現在、格闘中の部分は 実際には列がたくさんあるので A・B以上の列の場合と 最大値がB列に無い場合への改造を試しております。
No.1
- 回答日時:
案1
フィルタオプションの設定で重複レコードを削除し
配列数式で計算
=MAX(IF($A$2:$A$8=D2,$B$2:$B$8))
コピー&値の貼り付け
案2
ピボットテーブル案の最大値
案3
並べ替えて 集計を最大値で
は非表示なので没ですね
お返事いただきありがとうございます。
全て試させていただいたところ、案1が良さそうだったのですけど なかなか同じ動作が出来ずに いろいろと やっていたところ ご提案を参考にさせていただきながら以下の方法で解決できました。
商品名を第一優先で販売数を降順で並べ替えておく。
フィルタオプションの設定を選択範囲にしました。
すると どうにか思っていた結果に結びつけることが出来ました。
この度はありがとうございました、今後ともよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) Excelで該当しない項目(#N/Aの商品名)を簡単に表示・抽出させる方法についてです 1 2022/08/25 22:12
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
- Visual Basic(VBA) vbaマクロについて 【1.csv】をもとに【商品.csv】に有るものを【有り.csv】として名前を 1 2023/05/18 07:58
- その他(買い物・ショッピング) JANコードの登録について 1 2022/07/23 14:19
- Visual Basic(VBA) vbaマクロについて 次のようなマクロを組みたいです。 自分は初心者なので全くわかりません。 詳しく 8 2023/05/18 18:38
- Excel(エクセル) エクセル count関数で出てきた数だけの行数をリンクで参照する 3 2022/08/10 12:02
- Amazon 新規でAmazon商品ページ作成方法について 1 2022/03/28 00:22
- Visual Basic(VBA) 【VBA】複数行あるカンマ区切りのデータを全て縦に一列に並べたい 5 2022/04/13 17:03
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- 会計ソフト・業務用ソフト Excelで売上げデータの中の任意の商品の合計を出したい 3 2023/01/18 18:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでの作業計算方法について
-
はがきについて。
-
エクセル 文字を増やしたい。
-
セルの内容表示が邪魔になる
-
Microsoft365に変えたのですが...
-
エクセルの計算
-
Microsoft1Officeの互換ソフト...
-
【マクロ】その時、その時で変...
-
【マクロ】読取専用のファイル...
-
エクセル初心者です 関数の入れ...
-
Excel ピボットテーブルで日付...
-
【関数】適切な文字数の数字を...
-
LOOKUP関数を使えばいいのでし...
-
Aというブックの1というシート...
-
エクセル関数を教えてください
-
Excelのチェックボックスの使い...
-
エクセル 白黒印刷で白線を印刷...
-
時間によってファイル名が変わ...
-
WPS OFFICEでの縦書きについて
-
エクセルの条件付き書式につい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報