![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?c9bd177)
現在EXCELで顧客の受注データの管理をしています。
リストは購入日毎の入力になっている為、同じ顧客が複数回注文した場合、データが複数存在します(例 Aさんが1/3、2/4、3/5に注文した場合、Aさんの名前で3つのデータが存在する)。
このデータの中から、Aさんのように購入データが複数存在する人を抽出した上で
(1)抽出した人それぞれの注文データの最大購入額
(2)抽出した人それぞれの注文データの合計購入額
の両方が分かる数式を探しています・・・
そんな便利な数式があるかどうかも分かりませんが、どなたか詳しい方がいらっしゃったら
教えて頂きたいと思います。
よろしくお願い致します。
No.4ベストアンサー
- 回答日時:
B列(B2セル以下)に名前が入力されていて複数回出現する人だけの一覧を作成するなら以下のような関数で表示できます。
=INDEX(B:B,SMALL(INDEX(((COUNTIF($B$2:$B$100,$B$2:$B$100)=1)+(MATCH($B$2:$B$100&"",$B$2:$B$100&"",0)<>ROW($B$2:$B$100)-1))*1000+ROW($B$2:$B$100),),ROW(A1)))&""
C列に金額が入力されているなら、その最大値は以下の式になります(F2セル以下に上記の関数を入力した場合)。
=IF(F2="","",MAX(INDEX(($B$2:$B$100=F2)*$C$2:$C$100,)))
合計は以下の式です。
=IF(F2="","",SUMIF($B$2:$B$100,F2,$C$2:$C$100))
No.3
- 回答日時:
こんばんは!
すでに回答は出ていますが・・・
他の方法の一例です。
オートフィルタを兼用するとSUBTOTAL関数で対応できると思います。
↓の画像はB列の「Aさん」でオートフィルタをかけた後の結果です。
E2セルに
=SUBTOTAL(4,C:C)
F2セルに
=SUBTOTAL(9,C:C)
という数式を入れています。
※ 結果表示させたいセルはオートフィルタをかけても非表示にならない行にしておきます。
ご希望の方法でなかったらごめんなさいね。m(_ _)m
![「EXCELの重複データから最大と合計を抽」の回答画像3](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/0/667667_5497e14974b9f/M.jpg)
No.2
- 回答日時:
(1)ある条件をつけて、それに該当するデータ行の他列データの最大は配列数式でも、使わないと出来ない。
例 =MAX(IF(A2:A13="a",B2:B13,0)) といれてSHIFT+CTRL+ENTERを同時押しする
(2)作業列に条件に合うデータのみ関数で表示して最大をとれば配列数式にしなくても良いが、複数条件(複数顧客など)
の場合は無力
(3)ユーザー関数をVBAで組むと出来るが、質問者のお呼びで無いだろう。
セルに=MAXIF($A$2:$A$14,"b",$B$2:$B$14)のようなのを入れる。bは顧客氏名など。
標準モジュールに(MAXIFは小生が勝手につけた名前)
最大値を求める基本的なロジックである。
Function MAXIF(x, y, z)
i = 1
mx = 0
Dim cl As Range
For Each cl In x
If cl = y And z.Cells(i) > mx Then
mx = z.Cells(i)
Else
End If
i = i + 1
Next
MAXIF = mx
End Function
とりあえず、B列データは正の数とする。
---
実際は存在しないが、Googleででも「エクセル MAXIF」で照会すると結構沢山の記事がある。ニーズが強い証拠だろう。
読んで見たら。
No.1
- 回答日時:
A列に日付
B列に顧客名
C列に数量
があるとして
E2に「Aさん」の記載から集計すると
Aさんの過去最大:
=MAX(IF($B$2:$B$100=E2,$C$2:$C$100))
をコントロールキーとシフトキーを押しながらEnterで入力する
Aさんの合計:
=SUMIF(B:B,E2,C:C)
こちらはふつーに入力する
と出ます。
#参考
E列に「複数履歴の顧客」を用意する簡単な方法:
D2に
=IF(COUNTIF($B$2:B2,B2)=2,B2,"")
を記入してリストの下端までコピーし,名前が出てきたのを並べ替えて集めてE列にコピーして貼り付けます
ただし,前述した数式は購入履歴が一度きりのお客さんについても,別に支障なく計算できます。
#参考
複数回とか関係ない全顧客のリストを準備するには,ご利用のエクセルのバージョンが不明ですが,Excel2007以降を使っているならデータタブの「重複の削除」,Excel2003以前を使っているならデータメニューのフィルタの「フィルタオプションの設定」で重複を除いて抽出します。間違っても関数でリストを取りだそうなんてアプローチはするものじゃないので,気をつけてください。
#参考
ピボットテーブルレポートを使うことで,今回ご質問の内容はムズカシイ数式は一切使わず,顧客リストの抽出も全部お任せで,ついでに年ごとに区切った集計とかの複雑な組合せでもエクセルに完全オマカセで集計させることも出来ます。
今回は初心者さんらしく「数式でどーしてもヤリタイ」ようなので特に説明はしませんが,勉強してみるとエクセルを使える幅が広がってイイです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 複数セルデータを別シートの単一セルにコピーしたい。(詳細をご参照ください) 1 2022/12/14 15:08
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Excel(エクセル) Excelの数式についての質問 1 2022/10/31 15:50
- その他(データベース) accessについて 2 2022/05/31 16:58
- その他(ソフトウェア) 現在と過去の顧客名簿、新規・解約・更新など作りたいのですが「やよいの顧客管理」なら簡単に扱えますか? 1 2022/05/18 10:44
- オンラインゲーム VCTmastersTOKYOのチケット購入方法について 上の通り、VCT TOKYOのチケットにつ 1 2023/04/06 22:47
- Excel(エクセル) Excelの関数でこんな処理ができますか 1 2023/02/08 13:46
- Excel(エクセル) エクセルで一つのセル内の特定の数字のみ足す方法 6 2022/12/06 15:11
- Excel(エクセル) Excelでのデータ管理 6 2022/12/24 09:33
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでセルに標準で入力さ...
-
お世話になります。 Excelを使...
-
エクセルでB列でフィルターをか...
-
EXCELの質問です 119から足した...
-
Excel VBについての質問です。
-
UNIQUE関数が使えないバージョ...
-
Excelで、項目の種類ごとにカウ...
-
【マクロ】アクティブセルにブ...
-
【マクロ】アクティブセルの行...
-
A列とB列を参照してC列に連番を...
-
【マクロ】アクティブセルの、...
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
エクセル日付 文字列の関数がエ...
-
エクセルの空欄をつめて、次の...
-
エクセルの問題です。絶対値の...
-
エクセルのコメントのデザイン...
-
エクセルで上位バイトのセルと...
-
Excel 大小比較演算子による「...
-
「問題が発生しました」ですと?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報