• ベストアンサー

エクセルによるよい集計方法を教えてください!!

どなたかエクセルによる集計方法にお力添えください。 添付ファイルのように、シート1枚目に(1)「お客様カナ氏名」、(2)「購入年月」、(3)「購入商品コード」があります。一人のお客様が複数の商品を購入しているため、(1)の1名に対して(2)(3)は複数あります。 これを、シート2枚目で、(1)に対して「最新の購入年月」だけを選んで1行で表示させたいと思っております。 関数も使用しながらやってみたのですが、なかなかうまくいかず手作業になっております。 どなたか、効率よく集計できる方法をアドバイスいただけないでしょうか。 どうぞよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

D3セルに =A3&COUNTIF($A$3:A3,A3) 下へオートフィル F3セルに =MATCH($G3&COUNTIF($A:$A,$G3),$D:$D,0) 下へオートフィル H3セル =INDEX(B:B,$F3) 右へ下へオートフィル

その他の回答 (4)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 適当な列(ここでは仮にI列とします)を作業列とする方法です。  まず、I3セルに次の数式を入力して下さい。 =IF(($A3="")+SUMPRODUCT((OFFSET($A$3,,,MATCH("゛",$A:$A,-1)-ROWS($1:$2))=$A3)*(OFFSET($B$3,,,MATCH("゛",$A:$A,-1)-ROWS($1:$2))>$B3))=0,ROW(),"")  次に、I3セルをコピーして、I4以下に貼り付けて下さい。  次に、E3セルに次の数式を入力して下さい。 =IF(ROWS($2:2)>COUNT($I:$I),"",INDEX(A:A,LARGE($I:$I,ROWS($2:2))))  次に、E3セルをコピーして、F3セルとG3セルに貼り付けて下さい。  次に、F3セルの書式設定を、日付の2001/3/14等の、年月日が表示される形式に、設定して下さい。  次に、E3~G3の範囲をコピーして、同じ列の4行目以下に貼り付けて下さい。  以上です。

naonnaon
質問者

お礼

ありがとうございました!!今回は別の方の内容で作業してしまいましたが、あらためて時間を作り確認したところ大変勉強になりました!!本当にありがとうございました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! 一例です。 日付の列はシリアル値が入っていて、表示形式が yyyy年m月 になっているものとします。 ↓の画像のように作業用の列を設けています。 Sheet1の作業列D2セルに =IF(A2="","",IF(B2=MAX(IF($A$1:$A$1000=A2,$B$1:$B$1000)),ROW(),"")) これは配列数式になってしまいますので、この画面からコピー&ペーストしただけでは正確に表示されないと思います。 D2セルに貼り付け後、F2キーを押す、またはD2セルでダブルクリック、または数式バー内で一度クリックします。 編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定! このD2セルをオートフィルでずぃ~~~!っと下へコピーします。 そして、Sheet2のA2セルに =IF(COUNT(Sheet1!$D:$D)<ROW(A1),"",INDEX(Sheet1!A:A,SMALL(Sheet1!$D:$D,ROW(A1)))) これは配列数式ではありません。 として列方向と行方向にオートフィルでコピーすると 画像のような感じになります。 余計なお世話かもしれませんが、Sheet2で並び替えを行っても変化しませんので、 もし並び替えを行いたい場合は元データで並び替えを行ってください。 以上、参考になれば良いのですが・・・m(__)m

naonnaon
質問者

お礼

ご多忙のところ本当にありがとうございました!!今回は別の方の内容で対応しましたが、考え方など大変勉強になりました。腕を磨きたいと思います。今後ともどうぞよろしくお願いいたします。

  • soixante
  • ベストアンサー率32% (401/1246)
回答No.2

Sheet1 A1:お客様かな氏名  B1:購入日 C1:商品コード  D1:識別コード データが100行目まで入っているとします。 D2セルに =A2&B1 として、100行目まで引っ張る。 Sheet2 A1:お客様かな氏名  B1:最新購入日 C1:商品コード D1:識別コード A列には重複しない顧客名リストを記す。 D2セルに =A2&B2 として、100行目まで引っ張る。 B2セルに =MAX(IF(Sheet1!$A$2:$A$100=Sheet2!A2,Sheet1!$B$2:$B$100,"")) と入れて、Enterではなく、Ctrl+Shift+Enter で確定。 その後、顧客名のリストの一番下まで引っ張る。 C2セルに =INDEX(Sheet1!$C$2:$C$100,MATCH(Sheet2!D2,Sheet1!$D$2:$D$100,0),1) と入れて、一番下まで引っ張る。 D列が不格好と思えば、非表示にしておいても良いでしょう。 それぞれのお客様の最新購入日と商品コードが出ると思います。 ご確認ください。 また、Sheet1 のデータが今後も追加されていくなら、上の式で「100」としてあるところを、あらかじめ大き目の数字を入れておいても良いでしょう。

naonnaon
質問者

お礼

ありがとうございました。なるほど・・・と本当に勉強になりました。 本当にありがとうございました。

noname#131542
noname#131542
回答No.1

プログラム組み込めば不可能ではありませんが

関連するQ&A

  • エクセルによるよい集計方法【追加質問】

    こちら↓の質問の回答の、 http://okwave.jp/qa/q6346917.html 回答4、回答5についてご御存じの方、もう1点だけ教えていただきたく思っております。 「(2)購入年月」の最新日付が複数(例えば3つ)あった場合、計算結果も、「(1)お客様カナ氏名」が複数(例えば3行)表示されます。 (1)「お客様カナ氏名」に対して(2)「購入年月」の最新日付が複数ある場合も1行だけ表示させる方法を御存じないでしょうか。 (この場合、(3)「購入商品コード」も該当するコードが複数ありますが、どのコードが表示されても構いません。) 何度かトライしましたが、うまくいかず、どなたかお力添えいただきたく、お願い申し上げます。

  • エクセルでの集計方法

    A列に商品名、B列に出荷した数量が入力された一枚のシートがあり、これが12ヶ月分=12枚のシートがあります。これら全てのシートを集計し、それぞれの商品が12ヶ月でいくつ出荷されたのかを集計したいです。 この場合は串刺し演算を応用するのでしょうか?・・・・ 初心者で申し訳ありませんが、最も効率的な方法をご教授いただければと思います。

  • エクセルで集計

    エクセルで集計 シート1に1つの列に各支店名、2つ目の列に各商品名、3つ目の列に商品個数がランダム入力されているデータをシート2に自動で整理し集計したいのですが、2つの列の集計は関数SUMIFできるのですが、例えば、「各支店の商品個数の集計」など、「各支店の各商品の個数の集計」などの3つの列の集計方法を分かる方、いましたら教えてください。宜しくお願いします。

  • エクセルで頻度の集計をする方法について

    A列に日付(1日からその月の末日まで)、B列にその日に訪れた会員氏名が入っています。 ある1日に訪れる人は当然複数人います。(つまりある1日の行は複数ある事になります) これを前出のシートとは別のシートで個人ごとにいつ来たかを集計したいのです。 A列に会員氏名、B列以降に来た日付を表示したい。 (例) 田中太郎  7/3 7/9 7/10 7/12 山田太郎  7/1 7/10 7/15 のようなイメージです。 どなたか良い方法を教えてください。

  • エクセルの集計について教えてください

    エクセルの集計について教えてください 添付のように、A列からは入力用 A列 日付(複数月にまたがる) B列 金額 C列 項目 E列からは集計用として E列 項目 F列からは月ごとに集計できるような表を作りました 集計用は、また別途ほかのシートで参照して使用する予定です A列には、今後も次々データを足していく予定です 月単位でデータを抽出したのち、項目ごとに合計を算出したいのですが、どの関数を組み合わせればいいのかわかりません。 エクセルはほぼ初心者です ピボットテーブルを使用してもよいのですが、ほかのシートで参照できる方法を教えてください よろしくお願いします

  • エクセルでの集計についておしえてください

    エクセルで1シートひと月にし、日ごとにどこの部署の誰が何をいくら販売したかの入力を行い、月ごとの集計を別シートで行います。 さらに月ごとの集計を別シートに1年の集計する、という作業を これまで月ごと集計をピボットテーブルで、1年集計を月ごとシートを +するというちからワザでおこなってきましたが、もう少し簡潔で、 日々の入力が簡単になる方法を教えてください。 毎日、集計結果が必要となるので、自動集計になるような・・・ マクロ等は初心者ですので、なにとぞやさしくおねがいします。 わかりずらい説明ですが、一応エクセルのファイルを添付します。

  • エクセルのデータ集計について

    エクセルのデータ集計について質問です。現在windowsxp・office2007を使用しています。 エクセルの1ファイルに10シート、シート全てにデータが入力されており、このファイルが20弱あります。 ここから必要な数値を参照して、集計ファイルに集計しているのですが全て手作業で非効率的です。 何度か関数を使用して効率化を図ったのですが、どうも意図した結果は出ませんでした。(COUNTIF・COUNTIFS関数と、「統合」機能を使用しました) 調べてみたところ「マクロ」機能を使うと効率化できるかも、と思ったのですが、どのようなマクロを組めば良いのか、また、マクロ機能を使用しない場合どういった関数を使用すれば簡単にまとめられるのかご教授いただければと思います。

  • エクセルの集計方法を教えてください。

    月ごと、もしくは指定した期間の〇印の数をSheet2に集計したのですが分かりません。 月ごとに集計するときと、月をまたいで集計するときがあるため、〇月〇日~〇月〇日と指定して集計できる方法が知りたいです。 セルA     セルB 2014.5.1     〇 2014.5.2  2014.5.3     〇 2014.5.4 2014.5.5   ・   ・ 2014.6.1     〇 2014.6.2     〇 2014.6.3     ------------------------------- sheet2  セルA      セルB 2014.5の集計   2 もしくは、 2014.5.3~6.3   3 sheet2のセルBにはどんな式を入れたら良いのでしょうか? お手数ですが、教えていただけないでしょうか・・・  

  • エクセル2007 集計について

    エクセルである月の集計を複数のセルの合計を別のシートに出したいのですが、ある月とは、2007/1とか年月を打ち込み その行のセルを別シートに集計させます。 そういったデータベース的な使い方は、エクセル2007ではできますか?

  • エクセルで集計したいのですが・・・

    関数は少しわかりますが、マクロは分かりません。 今回は集計シートの集計数字を元シートに入力して、更に元シートにない項目を元シートの項目行に項目名を入れて集計数字を入れたいのです。 ただ、集計だけであれば「sumif」関数を使えば出来るのですが、元シートにない項目名を探し出して入力する方法がわかりません。教えてください。よろしくお願いします。 元シート  A  B       1 aaa 2 bbb 3 ccc 4 ddd 5 6 7 集計シート 項目 数量 1 bbb 1 2 aaa 2 3 ddd 1 4 eee 1 5 fff 1 6 ccc 2

専門家に質問してみよう