• ベストアンサー

Excel 関数 教えてください

  A列(製品番号) B列(年月日) C列(ランク) 1行 1085-003 2004/03/01 - 2行 1085-003 2004/03/01 1 3行 1085-003 2004/03/01 1 4行 3600-421 2004/03/01 1 5行 1085-003 2004/03/01 1 6行 1085-003 2004/03/01 2 7行 1085-003 2004/03/01 2 8行 1085-001 2004/03/01 1 9行 2777-111 2004/03/04 1 上記のような表が、実際は行が膨大にあるとします。 このなかで、B列(年月日)別に、C列 3ランク別(-,1,2)の集計をしたいと思います。(ランクの個数の集計) ただし、A列(製品番号)には、同じ番号が複数ダブっています。 どんなにダブりがあっても同じ年月日のものは、それは一つとカウントしたいのです。 <例> 2004/03/01 -ランク → <答> 1 2004/03/01 1ランク → <答> 3 2004/03/01 2ランク → <答> 1 2004/03/04 1ランク → <答> 1 いろいろなやり方があるかと思いますが、ピポットは使ったことがないので、関数式のほうがまだわかるかも。 未熟者なので、シンプルであればあるほどありがたいです。また、組んだ式の意味も教えていただければ感謝です。 過去の質問もみましたが、なかなか答えが出せなかったもので、どなたか、よろしくお願いします。

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

  • ベストアンサー
  • HAL007
  • ベストアンサー率29% (1751/5869)
回答No.1

>>ピポットは使ったことがないので 関数では無理、マクロでないと出来ません。 ならばピポットを使った方が楽です。 次の手順でやって見て下さい。 1.データの並び換え(ソート)  A-C列を選択して、年月日とランクでソートします。 2.一行目に>>A列(製品番号) B列(年月日) C列(ランク)  ()の名前が入っていることが前提です。  1)対象領域を選択(一行目も加える)ピポットを実行してウィザード   に答えて行きます。3/3の結果を表示する場所だけ指定   すれば後は無視して構いません  2)表示領域に集計場所がグレーで表示されるので   フィールドとして表示される日付を行見出しにドラッグします。  3)ランクを列見出しにドラッグして、最後に製品番号をデータ   域にドラッグすれば日付・ランク別の合計数が表形式で   集計されます。

bicat
質問者

お礼

お礼返信遅くなり、すみません。 ピポット初チャレンジでHAL007さんのご回答どおりにやってみました。 結果・・・確かにランク別に集計できました\(^o^)/ が。A列の重複データもそのまま集計する結果となり、目的の「重複データの排除」は達せられませんでした(*_*) なにかもうひと手間必要なんですかね? でも、とても参考になりました。ありがとうございました。

その他の回答 (2)

noname#132211
noname#132211
回答No.3

製品番号、日時、ランク、条件入力するセル、ランク別に結果(仕事数)を表示するセルを、以下の通りとします。 製品番号:A1~A200 日時:B1~B200 ランク:C1~C200 製品番号 条件入力セル:D1 日時 条件入力セル:E1 総数 表示セル:F1 ランク- 数表示セル:F2 ランク1 数表示セル:F3 ランク2 数表示セル:F4 F1セルへ以下の式を入力し、Shift+Ctrl+Enterでセルの入力を確定してください。 F1=SUM((A1:A200=D1)*(B1:B200=E1)) セル内の表示は、 {F1=SUM((B1:B100=D1)*(C1:C100=E1))}となります。 以下も同じように式を入れ確定しててください。 F2=SUM((A1:A200=D1)*(B1:B200=E1)*(C1:C200="-")) F3=SUM((A1:A200=D1)*(B1:B200=E1)*(C1:C200=1)) F4=SUM((A1:A200=D1)*(B1:B200=E1)*(C1:C200=2)) 製品番号 条件入力セル:D1 日時 条件入力セル:E1 の条件を変えてやれば、必要とする製品番号、日時のランク別集計ができます。 配列数式を利用し計算しています。 Shift+Ctrl+Enterでの決定が必要なので注意してください。 やりたいことと違うかもしれませんが、どうでしょうか。

bicat
質問者

お礼

う~ん、こんな関数(配列数式)があるんですね(@_@。 >やりたいことと違うかもしれませんが、どうでしょうか。  →やってみたら、できました。 A列:製品番号別のB列:年月日別の集計の検証には十分使えますね。 ただ、元のデータ(A列)が膨大なので、一つの製品番号と年月日を次々に入力してその結果を最後に集計する。ということをしなければならないようで、結果にたどり着くまで相当の時間がかかりそうです。 (逆に、dai_iさんの伝えたかったことと違ってたら、ごめんなさい。) やっぱ、これももうひと手間加えなければ目的結果に辿り着けないのでしょうか?(+_+) 教えていただき、ありがとうございました。十分参考にさせていただきます。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

>ピポットは使ったことがないので 過去に使わなかったとしても、簡単ですから、やって見れば良いはず。 結果は、表で出るから、ピボットウイザードが何をやったか明白に判ります。 (データ) 製品 年月 ランク 1085-003 2004/3/1 - 1085-003 2004/3/1 1 1085-003 2004/3/1 1 3600-421 2004/3/1 1 1085-003 2004/3/1 1 1085-003 2004/3/1 2 1085-003 2004/3/1 2 1085-001 2004/3/1 1 2777-111 2004/3/4 1 1085-003 2004/3/5 2 (結果)表 データの個数 : ランク ランク 年月 1 2 - 総計 2004/3/1 5 2 1 8 2004/3/4 1 1 2004/3/5 1 1 総計 6 3 1 10 結果はこれでは、だめですか。 (方法) 見だしも含め、データ全部を範囲指定して メニューでデータ-ピボットテーブルと・・・-次へ-次へ-「レイアウト」ボタンをクリック 「行」へ「年月」ボタンをドラックアンドドロップ 「列」へ「ランク」ボタンをドラックアンドドロップ 「データ」へ「ランク」ボタンをドラックアンドドロップ 「データの個数」「ランク」になる。 OK-完了 #1のご回答の方が正しい場合は済みません。

bicat
質問者

お礼

お礼返信、遅くなりすみません。 #1 HAL007さんと同じく、imogasiさんご回答の手順どおりにピポットでやってみました。 結果は、確かにB列:年月日+C列:ランク別の集計結果を得ることができました。 が。これもやはり、#1 HAL007さんと同じ、A列の重複データも集計してしまい、重複データ排除による結果が得られませんでした(>_<) ご回答はとても参考になり、ありがとうございました。

関連するQ&A