アプリ版:「スタンプのみでお礼する」機能のリリースについて

EXCELで以下のような集計を簡単に行いたいのですが、簡易な方法ってありますでしょうか?
これに関してはマクロでは実現させるつもりはなく、あくまでEXCELの基本機能(と関数レベル)で行いたいのです。

マクロは作れますし今回の例が実現できる(擬似)マクロは既にあります。しかし、今回の話ではマクロは使わない!で、且つEXCEL初心者が操作手順A4紙1枚程度を見て操作できるものが良いです。

実は表を選択して「データ」の「集計」で簡単に出来るだろうと思っていたのですが…出来ませんでした。

データは図の左側のように担当者の名称がそれぞれ何個か書かれているだけです。このようにたった1列だけというデータになります。
これを図の右側のように担当者毎の回数と割合を表にします。(これに似た適当なフォーマットでOKです) 表ができればあとは業務が流れていくので助かります。

XPのEXCEL2003レベルでお願いします。ヒントでもモチロン構いません。お願いします。

「EXCELで以下のような集計を簡単に行い」の質問画像

A 回答 (8件)

いろいろな方法があるでしょうが分かりやすい方法として次のようにしてはどうでしょう。


A列の2行目から下方にデータがあるとします。
作業列としてB2セルには次の式を入力して下方にオートフィルドラッグします。

=IF(A2="","",IF(COUNTIF(A$2:A2,A2)=1,MAX(B$1:B1)+1,""))

これで上から新しい人の順に番号が付けられます。
そこでお求めの表ですがD1セルに担当、E1セルに回数、F1セルに%と入力します。
D2セルには次の式を入力して下方にオートフィルドラッグします。

=IF(ROW(A1)>MAX(B:B),"",INDEX(A:A,MATCH(ROW(A1),B:B,0)))

E2セルには次の式を入力して下方にオートフィルドラッグします。

=IF(D2="","",COUNTIF(A:A,D2))

F2セルには次の式を入力して下方にオートフィルドラッグします。

=IF(E2="","",E2/SUM(E:E))

なおF列の%表示についてはF列を選択してからツールバー上の「パーセントスタイル」をクリックします。小数点以下の表示にするためにはその後に「小数点表示桁上げ」のアイコンを2回クリックすれば小数点以下2位までの表示にすることができます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

頂いた回答を、順次担当と一緒に確認し判断させていただく予定ですがなかなか
ちゃんとした時間が取れません。回答していただいて申し訳ないのですが、一旦
締切させていただきます。ありがとうございました。

お礼日時:2010/08/25 15:11

画像がうまく添付できなかったので、もう一度トライしてみます。



また「総計」欄が不要なら、このセルを右クリックして「表示しない」にしてください。

ついでに、複雑な数式でご希望の回答とは違うかもしれませんが、参考までにA列のデータから重複のない担当者の名前を表示させる関数を提示します。

A2から名前が入力されているなら、以下の式を入力して下方向にオートフィルします。

=INDEX(A:A,SMALL(INDEX((MATCH($A$2:$A$1000&"",$A$2:$A$1000&"",)<>ROW($A$2:$A$1000)-1)*1000+ROW($A$2:$A$1000),),ROW(A1)))&""

この一覧が取得できれば、後の関数は初心者でもわかる基本的な関数だと思うので省略しますが、これらの関数を利用する場合は、条件付き書式を利用してデータの増減に応じて自動的に罫線を引くようにするなど、いろいろな工夫が可能です。

また、今回のようなご質問では、わからない部分だけをピンポイントで質問されるほうが、みなさんからの的確な回答が期待できると思います。
「EXCELで以下のような集計を簡単に行い」の回答画像7
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

頂いた回答を、順次担当と一緒に確認し判断させていただく予定ですがなかなか
ちゃんとした時間が取れません。回答していただいて申し訳ないのですが、一旦
締切させていただきます。ありがとうございました。

お礼日時:2010/08/25 15:10

>しかし、今回の話ではマクロは使わない!で、且つEXCEL初心者が操作手順A4紙1枚程度を見て操作できるものが良いです。



この意味がよくわからないのですが、たとえば複雑な配列数式を使えば、重複のないリストを補助列なしに作成することができますが、このような方法はダメということですね。

もし、そのような条件があるなら、ピボットテーブルだけで作成するのがよいと思います。

A列のデータをリスト範囲とするピボットテーブルを作成し、行フィールドに1回、データフィールドに2回「担当」をドラッグします。

データフィールドに2つ集計されているデータの右側のセルの1つを選択して、右クリック「フィールドの設定」で「オプション」をクリックして計算の種類を「行方向の比率」にします。

最後にB4セルとB5セルの値を「回数」と「%」に書き換えれば完成です(添付画像参照)。
    • good
    • 0

質問に色々書いているが、氏名のユニークな一覧は、フィルタオプションの設定ー重複するレコードは無視する、で任意のセル難に範囲にまとめて作れる。


それが出来ればCountif(例=COUNTIF(A2:A20,D2)で氏名の出現件数は出せる。
シェアの計算ぐらいわかるだろう。
質問では、VBAはダメとか言って、仰々しく聞くほどの内容ではなかろう。
フィルタオプションを使いたくないなら、関数で作業列を使って重複の無いユニークな氏名列を作ることは出来るが略。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

頂いた回答を、順次担当と一緒に確認し判断させていただく予定ですがなかなか
ちゃんとした時間が取れません。回答していただいて申し訳ないのですが、一旦
締切させていただきます。ありがとうございました。

お礼日時:2010/08/25 15:09

#3 の DOUGLAS_ です。



 ご質問の主旨を勘違いしておりました。

>このようにたった1列だけというデータになります。
でしたね。
 つまり、「右の表」自体を1から作りたい、というような意味合いですね。


 ピボットテーブル を利用すれば、ちゃんとできるような気もするのですが、私は ピボットテーブル は不得意なので、ちゃんと説明ができません。
 しかしながら、勘違いの回答をしてしまいましたので、罪滅ぼしで、私にできる範囲で説明してみます。
 (5) 以降も ピボットテーブル の機能でできるのかも知れませんが、私は存じませんので、予めお断りしておきます。


1)[データ(D)] - [ピボットテーブルとピボットグラフ レポート(P)...] = [ピボットテーブル/ピボットグラフ ウィザード - 1/3] ダイアログ で [OK] します。
2)[ピボットテーブル/ピボットグラフ ウィザード - 2/3] ダイアログ - [範囲(R):] に「1列だけというデータ」範囲を指定し、[次へ(N) >] を クリック します。
3)[ピボットテーブル/ピボットグラフ ウィザード - 3/3] ダイアログ - [レイアウト(L)...] - [行(R)] と [データ(D)] に、それぞれ、「担当」をドラッグし、[OK] します。
4)同じく [オプション(O)...] - [書式オプション] - [列の総計(G)] の チェックボックス を オフ にして、[OK] し、[完了(F)] します。
5)作成された ピボットテーブル の「集計」の右の列に、前回答の (2) のような式を入れます。

 以上で、添付画像の様な表ができます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

頂いた回答を、順次担当と一緒に確認し判断させていただく予定ですがなかなか
ちゃんとした時間が取れません。回答していただいて申し訳ないのですが、一旦
締切させていただきます。ありがとうございました。

お礼日時:2010/08/25 15:08

>EXCELの基本機能(と関数レベル)で行いたい


>XPのEXCEL2003レベルでお願いします。

 左の表の「担当」が A1、右の表の「担当」が同じ シート の C1 にあるとします。

1)D2 に
=COUNTIF(A:A,C2)
と入力し、これを、D3:D7 に オートフィル します。
2)E2 に
=D2/SUM(D:D)
と入力し、これを、E3:E7 に オートフィル します。
3)E列を選択し、[書式(O)] - [セル(E)...] = [セルの書式設定] ダイアログ - [表示形式] タブ - [分類(C)] から「パーセンテージ」を選択し、[小数点以下の桁数(D):] を「2」にして、[OK] します。

 以上です。
    • good
    • 0

こんばんは!


一例です。
↓の画像で説明させていただきます。
作業用の列を1列設けています。
作業列B2セルに
=IF(COUNTIF($A$2:A2,A2)=1,ROW(),"")
という数式をいれ、オートフィルで下へずぃ~~~!っとコピーします。

そして、結果のD2セルに
=IF(COUNT(B:B)<ROW(A1),"",INDEX(A:A,SMALL(B:B,ROW(A1))))

E2セルに
=IF(D2="","",COUNTIF(A:A,D2))

F2セルに
=IF(D2="","",E2/(COUNTA(A:A)-1))

という数式をいれ、D2~F2セルを範囲指定し、F2セルのフィルハンドルで下へコピーすると
画像のような感じになります。

以上、参考になればよいのですが
的外れならごめんなさいね。m(__)m
「EXCELで以下のような集計を簡単に行い」の回答画像2
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

頂いた回答を、順次担当と一緒に確認し判断させていただく予定ですがなかなか
ちゃんとした時間が取れません。回答していただいて申し訳ないのですが、一旦
締切させていただきます。ありがとうございました。

お礼日時:2010/08/25 15:07

右側の表の回数列に関数=COUNTIF($B$3:$B$21,E3)」(B3:B21は左側の表の担当者列を指定しています。

E3は右側の表の担当者列を指定しています)と入力して、同列の下側へコピーして貼り付け、%のところは100%に該当する数字を参照し、(たとえばG1セルを参照するならG1に19と入力し、%の列の一番上のセルに「=F3/$G$1」と入力し)セルの書式をパーセントに変え、同列の下セルへコピーして貼り付ければ、お望みの表ができると思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

とりあえず頂いた回答を、順次担当と一緒に確認し判断させていただく予定です。

お礼日時:2010/08/19 13:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!