現在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
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ランキング
-
エクセルでの作業計算方法について
-
Microsoft1Officeの互換ソフト...
-
【マクロ】その時、その時で変...
-
はがきについて。
-
【マクロ】読取専用のファイル...
-
エクセル初心者です 関数の入れ...
-
【関数】適切な文字数の数字を...
-
LOOKUP関数を使えばいいのでし...
-
【関数】先頭だけにある、半角...
-
Excel ピボットテーブルで日付...
-
Excelのpivotについて質問です
-
時間によってファイル名が変わ...
-
エクセル 白黒印刷で白線を印刷...
-
Aというブックの1というシート...
-
エクセル関数を教えてください
-
WPS OFFICEでの縦書きについて
-
Excelのチェックボックスの使い...
-
エクセルの条件付き書式につい...
-
エクセルのセルに同じ大きさの...
-
エクセルの関数について教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報