[[20160210102416]] 『名簿の集計』(右近) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『名簿の集計』(右近)

以下のような名簿のシートがあります。
D列以降も様々な情報が入っていることとします。

  A    B         C       D・・・
  番号 氏名      行政区
1 1    山田花子  A     
2 2    鈴木太郎  B
3 3    阿部次郎  C
4 4    佐藤美子  A
5 5    山下泰広  C

別のシートに上記の表を基に以下のような集計をさせたいです。
行政区別に分けて、その頭に行政区名と行政区ごとの人数を表示させたいです。
尚且つ、行政区名と人数が入る行は、罫線を外枠だけにして、
出来ればセンタリングして、太字又はフォントサイズをやや大きくしたいです。
可能でしょうか?

  A    B
  番号 氏名
1 A(2名)     
2 1    山田花子
3 2    佐藤美子
4 B(1名)
5 3    鈴木太郎
6 C(2名)
7 4    阿部次郎
8 5    山下泰広

別の質問と平行してお尋ねしております。
どうぞよろしくお願いします。

< 使用 Excel:Excel2013、使用 OS:Windows7 >


 関数での処理がご希望ですか?

 それと、アップされたサンプルの行番号(元データ、結果データとも)ですけど、一番上に書いてあるタイトル行らしきものは 本当はないのですか?
 それとも、ちゃんと、あって、その行番号が 1、データは 2行目からなのですか?

(β) 2016/02/10(水) 10:41


はい、関数で出来ればと思います。
本当はタイトル行がありますので、2行からになります。
説明が誤っていましまた。申し訳ありません。
どうぞよろしくお願いします。
(右近) 2016/02/10(水) 10:45

 C列 並び替えて 「小計」でいいんでないっすか?
(GobGob) 2016/02/10(水) 10:48

 GobGobさん指摘のとおり、小計機能で充分だと思いますねぇ。

 仮に、提示の縦のレイアウトでエキスパートさんから展開すべき数式がアップされたとしても

 >>尚且つ、行政区名と人数が入る行は、罫線を外枠だけにして、 
 >>出来ればセンタリングして、太字又はフォントサイズをやや大きくしたいです。

 これは条件付書式を使うことになると思いますが、残念ながら 配置指定はできませんので、センタリングは無理ですね。

 2列1組で、横に展開するレイアウトにして、1行目には、あらかじめ行政区別が入力してある というレイアウトなら
 1行目の書式をあらかじめ、希望の形にセットしておけばいいのですけどね。

(β) 2016/02/10(水) 11:21


 >センタリングは無理ですね。
 面倒でやる気にはならないが、条件付き書式で文字数によって頭に数文字のスペースを入れるということで疑似的に
 可能かもしれない。

 セル幅が変わると調整しなおしになるが。
(ねむねむ) 2016/02/10(水) 11:31

具体的にはどのような操作が必要でしょうか?
(右近) 2016/02/10(水) 12:31

 小計機能であれば、

 1.元シートの A:C列を別シートにコピペ。
 2.以下、別シートに対して
 1)C列昇順で並び替え
 2)A1を選択してデータタブの小計をクリック
 3)グループの基準(A) を 行政区、集計の方法(U) を データの個数(これはすでにそうなっていると思います)
 4)OKボタン

 たったこれだけです。

(β) 2016/02/10(水) 22:27


 私が申し上げた、縦ではなく、横のレイアウトにするなら、ほんのちょっと面倒、かつ、数式は、ネットを参考にしてこねくりまわしたもので
 スマートではないですが、Sheet2 に対して。

 まず、タイトル行の準備

 1.A1 に番号、B1 に氏名 A2 に とりあえず行政地区の中の A 。B2 に =COUNTIF(Sheet1!$C:$C,A2)
 2.A1:B2 を選択して、右に、行政地区分、フィルコピー
 3.C2,E2,G2,・・・の行政地区を それぞれのものに変更
 4.B2,D2,H2,F2,・・・を選択して 表示書式 ユーザー定義で "("#"名)"
 5.1行目、2行目を選択して、センタリング
 6.1行目、2行目のフォントサイズや罫線もお好きなように。

 次に数式

 A3 : =IF(ROW(A1)>B$2,"",INDEX(Sheet1!$A$1:$A$1000,SMALL(IF((Sheet1!$C$1:$C$1000=A$2),ROW(Sheet1!$A$1:$A$1000),""),ROW(A1)))&"")

 これを Ctrl/Shift/Enter で入力

 B3 : =IF(ROW(A1)>B$2,"",INDEX(Sheet1!$B$1:$B$1000,SMALL(IF((Sheet1!$C$1:$C$1000=A$2),ROW(Sheet1!$A$1:$A$1000),""),ROW(A1)))&"")

 これも Ctrl/SHift/Enter で入力

 A3:B3 を選択して、右にずずずっとフィルコピー、そのまま 下に ずずずっとフィルコピー。

(β) 2016/02/11(木) 10:00


うまくできました。
皆さん、ご教示有難うございました。
いつも感謝申し上げます。

(右近) 2016/02/15(月) 14:56


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.