• ベストアンサー

エクセルの関数

下記の様に、『Aセル=グループ種別』『Bセル=参加者名』『Cセル=性別』の表があるのですが、別の形態に集計し直したく、悩んでおります。 --------- グループ|参加者名| ---------    A    | ○さん | ---------    A    | ○さん | ---------    A     | △さん | ---------    B    | ○さん | ---------   B    | □さん | ---------    C     | △さん | --------- 上記の様な表を、下記のように『同一グループ』かつ『同一参加者名毎』の『個数』となるように、エクセルの関数を使って集計したいのですが、何か方法ございますでしょうか? 尚、ピボットテーブルを使えばできる事は承知してるんですが、今回はピボットテーブルを使えない事情がある為、関数でできればと思いご質問しました。 ------------ グループ|参加者名|個数 | ------------    A    |  ○さん  |   2   | ------------    A    |  △さん  |   1   | ------------    B    |  □さん  |  1   | ------------    B    |  ○さん  |   1   | ------------    C    |  △さん  |   1   | ------------ 宜しくお願いします。

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.3

作業列を2列使う例です。ご参考まで。 ....................A.................B........C.....D............E............F.....G ..1....グループ...参加者名.................................................... ..2..................A...............○....A○.....2............A..........○.....2 ..3..................A...............○....A○...................A..........△......1 ..4..................A...............△....A△.....4............B..........○......1 ..5..................B...............○....B○.....5............B..........□......1 ..6..................B...............□....B□.....6............C..........△......1 ..7..................C...............△....C△.....7....#NUM!....#NUM!....... データ数によらず対応できる様にしたつもりで、その分長くなっています。 E,F列のエラーを出さないようにすると、更に長くなると思われるので、トライしておりません。 C2の式=A2&B2 D2の式=IF(COUNTIF(OFFSET($C$2,0,0,ROW(D1),1),C2)>1,"",ROW()) E2の式=INDEX(OFFSET($A$1,0,0,COUNTA($A:$A),1),SMALL(OFFSET($D$2,0,0,COUNTA($A:$A)-1,1),ROW(A1)),1) F2の式=INDEX(OFFSET($B$1,0,0,COUNTA($A:$A),1),SMALL(OFFSET($D$2,0,0,COUNTA($A:$A)-1,1),ROW(A1)),1) G2の式=IF(ISERROR(E2),"",COUNTIF(OFFSET($C$2,0,0,COUNTA($A:$A)-1,1),E2 & F2))

kontade
質問者

お礼

ご回答ありがとうございました。教えていただいた方法を参考にして、自分なりトライ&エラーしながら何とか目的を達成できました。

その他の回答 (3)

回答No.4

No.2 どう考えているか知らないが、 →どう考えようと、あなたに文句を言われる筋合いではない。また、あなたが知る必要も無い。そもそも、わからないから質問しているのに、「どう考えている」と言われても・・。 B列の名前は同姓同名もいる可能性があるので、ソウは行かないので難しい。 →何の手がかりも無く、同姓同名の別人を区別できるとは、誰も考えないから、あなたが無意味・無駄なことを心配する必要は無い。それとも、質問者を馬鹿にしているのか。 作業列にA列+B列の結合セル列を作り、その列で、データーフィルターフィルタオプションの設定の操作をして、重複なきデータを作るのが良い。 →「エクセルの関数を使って集計したい」という、質問の大前提を無視しての回答とは、あなたの読解力には脱帽です。是非、質問の趣旨に沿った内容で、再度回答をお願いします。

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

どう考えているか知らないが、A+B列について、2列について重複しないリストを作ることは関数ではたやすくない。  それが出てしまえば、Countif関数で出来る。 1列だけならA列で第1行目からの件数が1のものを拾えばよいが、B列の名前は同姓同名もいる可能性があるので、ソウは行かないので難しい。 作業列にA列+B列の結合セル列を作り、その列で、データーフィルターフィルタオプションの設定の操作をして、重複なきデータを作るのが良い。 例データ グループ 氏名 作業列 A 山田 A山田 A 川上 A川上 A 山田 A山田 A 渡辺 A渡辺 C 山田 C山田 C 佐藤 C佐藤 A 山田 A山田 A 木村 A木村 B 下村 B下村 C 渡辺 C渡辺 B 鈴木 B鈴木 C 渡辺 C渡辺 C 山田 C山田 B 下村 B下村 B 下村 B下村 C列はC2に=A2&B2  下方向に式複写 ーーーーー K1:M1に グループ 氏名 作業列 をコピー ー A1:C16範囲指定 データーフィルターフィルタオプションの設定 指定した範囲にチェック リスト範囲 A1:C16 検索条件範囲 Sheet1!$M$1  <-いままでは1列だけを問題にすればよい場合がほとんどだったが、小生には初めてだが、こうすると C列の重複しない行の、A-C列を持ってこれるようだ。(注) 抽出範囲 Sheet1!$K$1:$M$16 「重複するレコードは無視する」にチェック OK 結果 グループ 氏名 作業列 A 山田 A山田 A 川上 A川上 A 渡辺 A渡辺 C 山田 C山田 C 佐藤 C佐藤 A 木村 A木村 B 下村 B下村 C 渡辺 C渡辺 B 鈴木 B鈴木 件数は、1列のカウントなのでCOUNTIFでよくて N2に =COUNTIF($C$2:$C$16,M2) 下方向に式を複写 結果 グループ 氏名 作業列 件数 A 山田 A山田 3 A 川上 A川上 1 A 渡辺 A渡辺 1 C 山田 C山田 2 C 佐藤 C佐藤 1 A 木村 A木村 1 B 下村 B下村 3 C 渡辺 C渡辺 2 B 鈴木 B鈴木 1 ーーー (注)の部分がうまく行くか心配だが、類推してやってみてください。

kontade
質問者

お礼

ご回答ありがとうございました。教えていただいた方法を参考にして、自分なりトライ&エラーしながら何とか目的を達成できました。

noname#96418
noname#96418
回答No.1

作業列としてD,E列を使います。また、表の最下行の次の行は空行にします。 (1)A列とB列でデータを並べ変える(昇順または降順に) (2)D2セルに =IF(A2<>A1,1,IF(B2<>B1,1,D1+1))     E2セルに =IF(D2<D3,"",1)     と入力して、それぞれ下へコピー (3)オートフィルタで、E列のセルが 1 となっているものを抽出 これでお望みの結果が得られるでしょうか。

kontade
質問者

お礼

ご回答ありがとうございました。教えていただいた方法を参考にして、自分なりトライ&エラーしながら何とか目的を達成できました。

関連するQ&A

  • エクセルの関数

    エクセルの関数を教えてください。 (1)A1セルに年数をH○○という表記。 B1セルにA1から5年後を0点とし、1年経つごとに+2点としたい。  例: A1セルH10 B1セル 18点(5年後H15を0とし年ごとに+2) ※A1とB1それぞれに入れる関数を教えてください。  A1にユーザー定義で”H"0 と入れて数字10を入力すると「H10」となる。 でもB1入れる関数が分からない。IFなのは分かるのですが。。。どのように式を入れるんですか? (2)A1セルに市町村 B1セルに参加 ○   C1セルにB1セルの参加〇なら5点。空白なら0点。としたい。さらに市町村がグループPに該当する なら、+1としたい。グループ表は別で作成。  例:A1セル ○○市 B1セル参加○ C1セル 5点(A1がグループPなら+1で6点)  上記2点の関数を分かる方教えてください。よろしくお願いします。

  • エクセルの関数について

    Windows Xp エクセル2003を使用しています。 業務で使用している集計表ファイルがあり、別ファイルにデータを反映させたいのです。 集計表のセルA1を検索値としセルB1とセルB2の値を返す関数はないでしょうか? 集計表のつくりは約1000行あり、セルA3を検索値としてセルB3の値を返す行もあります。 セルA5を検索値とし、B5、B6、B7、C5,C6の値を返す行など様々です。 こういったデータがランダムで表になっています。一つの検索値に対して、検索値の水平方向はvlookup関数で表示出来たのですが、 一つの検索値で2つの値を返す関数が分からず、困っています。 1行下や2行下を検索する関数も参考にしたのですが、集計表のつくりがランダムの為、検索してほしくないものまで表示されてしまうなど、ウマクできませんでした。 宜しくお願いします。

  • エクセルの関数について

    エクセルの関数について教えて頂きたいです。 業務でエクセル(2000)で作成してある集計表があります。 その集計表の数値を別BOOKに反映させたいのです。 セルA1を検索値として、セルB1とセルB2の値を返す関数はありますでしょうか? 集計表の行数は約500行、並びはランダムでセルC1を検索値としてセルC2の値を返す 箇所もあります。一つの値を検索値として二つの値を返すことが出来ずに困っています・・・ 宜しくお願いします。

  • 関数を教えてください。

    こんにちは、教えて下さい。 下記のような表があります。 ------------------------------------------------ プロジェクト記号   物件名   金額     A        ああああ  100     A        ああああ  200     A        いいいい  300     A        いいいい  400     B        うううう   500     B        うううう   600     B        うううう   700     B        えええ   800     B        えええ   900 ------------------------------------------------ こちらをピボットテーブル、もしくは関数で 希望の表 プロジェクト記号    物件名   金額     A          2     1000     B          2     3500    合計         4     4500 ------------------------------------------------- と上記のような表を表示させたいのですが、ピボットでは 難しいような気がします。 希望の動作としては、 プロジェクト記号はAですが、物件名が"ああああ"と"いいいい"と分かれて いるので、物件名数は2ですが、金額その物は、プロジェクト記号Aの合計金額を 表示させたいので、金額は1000円です。 そのほかも同じです。 ピボットではどうも"希望の表"のようにするのは私には無理そうでしたので 何か良いピボットの方法か、もしくは関数があれば教えて頂きたいと思い ますので、どなたか宜しくお願い致します。

  • エクセル「SUMPRODUCT関数」で困っています

    SUMPRODUCT関数 初心者です。 項目数15くらい、約10000件のデータベースから、3項目の条件でSUMPRODUCT関数を使って20種別×15種別の表を作成してみようと思いました。 …が、結果すべて0になってしまいます。 SUMPRODUCT関数の使い方(考え方)はあっていると思います。(小さい表で使ってみると正しく計算されるため) たしかに、SUMPRODUCT関数は沢山計算しているので、大きな?表を集計するのに向かないのでしょうか? そのあたりがわかりません。 ただ、ピボットテーブルで同じものを作成すると、さくさく完成します。 こんな漠然とした質問でお答えいだけるのか不安ですが、どなたかお詳しい方よろしくお願いします。

  • エクセル関数 重複をのぞいて個数を数える方法

    いつもお世話になっています セルに a  b  c  a  b b と入力したとき、個数を数える方法は知っていますが、種類が3個だと集計するにはどんな関数を使えばいいのでしょうか。

  • エクセル 関数について

    弁当表4/1~4/30の関数を変更したいのでご指導ください。 A社、B社、C社から選択できます。 社員が毎日、A,B,C,✖を記載しています。 3社とも500円ですが 4月8日~C社のみ550円に値上がりします。 社員それぞれの合計欄にはABCのそれぞれの個数✖金額を集計しています。 Cの場合のみ C×個数×500円(4/1~4/5)+C×個数×550円(4/8~30)としたいのです。 ご指導宜しくお願い致します。

  • エクセル関数につきまして教えてください。

    エクセル関数につきまして教えてください。(過去に同じような質問がございましたら申し訳ございません。) エクセル関数で下記のような表示をしたいです。 表中にある数字の隣のセルに下記のようなランクをつけたいのですが、文字の色やフォントなども変えたいのですが可能でしょうか?? テーブルを下記のようなテーブルもつくったのですが数式がわかりません。 2.0以上 →A(赤文字) 1.9~1.0 →B(オレンジ) 0.9~0.5 →C(緑) 0.4以下 →D(青) 宜しくお願い致します。

  • EXCEL集計の方法で。。

    こんにちは。 EXCELの集計方法で質問なのですが、例えば、 A店、B店、C店、における1か月分の商品別売り上げ表があるとします(下記のような表) 店 日  物   個数 A店 10/1 トマト  2個 B店 10/1 キャベツ 1個 A店 10/1 キャベツ 1個 C店 10/2 トマト  3個 B店 10/4 キャベツ 4個 A店 10/4 きゅうり 1個 A店 10/4 キャベツ 2個 これを集計し、店別でしかも商品別の売り上げ個数を求めるのはどのようにしたら良いでしょうか?? 集計でグループ基準を店、集計方法を合計、集計するフィールドを個数にしてすると、下記のような問題が生じてしまします。 (1)同じ売り上げ日の同じ店の売り上げはTOTALされる。 (2)集計部分(太字の部分)に商品名が出てこない できれば、アウトライン2を使用して、集計結果を以下のようにしたいのです。 A店  トマト  2個 B店  キャベツ 5個 A店  キャベツ 3個 C店  トマト  3個 A店  きゅうり 1個    どなたか、お分かりになるかたいらっしゃいますでしょうか??長々と書いてしまいましたが、どうぞ よろしくお願い致します。

  • ピボットテーブルの集計結果を使って、さらに条件を付けて集計をしたいです

    ピボットテーブルの集計結果を使って、さらに条件を付けて集計をしたいです。 たとえば、このようなピボットテーブルから、 [A]      [B]       [C]       [D]                         1月 Group  Account1   Account2 G0    田中         東京     5         加藤         大阪     2 G1     佐藤        大阪      3 G1    田中         名古屋       A列のGroupをキーにして、D列を集計します。 G0の合計は7で個数は2、G1の合計は3で個数は1、という結果を出すにはどのようにしたら良いでしょうか?

専門家に質問してみよう