人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

下のような、表データを加工したいと思っています。(表1)を(表2)のように加工したいのですが、AccessかExcelを使って簡単にやるには、どのようにすればいいでしょうか。

(表1)一行につき、チームひとつと名前がひとつ入っています
----------------------------------------
チーム 名前
----------------------------------------
Aチーム 安部
Aチーム 井上
Aチーム 上田
Bチーム 榎
Cチーム 及川
Cチーム 金井
Cチーム 木本
Dチーム 栗田
----------------------------------------

(表2)チームごとに名前がカンマ区切りで並んでいます
----------------------------------------
チーム 名前(カンマ区切り)
----------------------------------------
Aチーム 安部,井上,上田
Bチーム 榎
Cチーム 及川,金井,木本
Dチーム 栗田
----------------------------------------

●質問者: nouv
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:access Aチーム Excel ひとつ データ
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● paxil
●18ポイント

http://hp.vector.co.jp/authors/VA014071/tips/xl_pvt1.html

Mr.Big〜小技集・ピボットテーブルの基本〜

Excelの”ピボットテーブル”は試されましたか?

◎質問者からの返答

試してみましたが、行フィールドに「チーム」、列フィールドに「名前」をドラッグして、(それぞれのチームに所属するメンバーの名前がカンマ区切りで表示されるのを期待して...)データアイテムに「名前」をドラッグすると、数字が表示されてしまいます。うまくいく方法はありますでしょうか?


2 ● sparituda
●18ポイント

http://www.hatena.ne.jp/1122378304#

人力検索はてな - 下のような、表データを加工したいと思っています。(表1)を(表2)のように加工したいのですが、AccessかExcelを使って簡単にやるには、どのようにすればいいでしょうか..

ExcelでA列にチーム、B列に名前があるとします。

1)まず、チーム順(必要ならチーム?名前順)にデータを並べ替えてください。

2)次に、C2、D2に次の式を入れます。

=IF(A1=A2,C1&”,”,””)&B2

=IF(A3=A2,””,”X”)

3)C2とD2の式を下方向にコピーし、再計算します。

4)D列の値がXである行がご希望の結果です。フィルターか並べ替えで抜き出して、ご利用ください。(並べ替えの場合は、計算結果の値だけを別の場所にコピーしてから。)

◎質問者からの返答

ありがとうございます。いい方法ですね。


3 ● yoo15x
●18ポイント

http://plaza.rakuten.co.jp/urawazakun/

エクセル裏技 Excel裏技 - 楽天ブログ(Blog)

URL はダミーです。


Excel 2000 にて検証しました。


(表1)は既に Excel のシートになっていて、A1 から「チーム」となっているものとします。

データは A2、B2 以下に入力されている状態です。


Step1:

表を「データ」から「並べ替え」します。

最優先キー「チーム」、2番目の優先キー「名前」、ともに昇順、ふりがなを使用するオプション。

これでチーム内は 50音順になりました。


Step2:

いくつかのセルに式を入力します。

C2 「=IF(A2=A3,1,0)」、D2 「=IF(C2=0,A2,””)」、E2 「=IF(OR(C1=0),B2,E1&”,”&B2)」

それぞれ、チーム内の後続データの有無、チーム内最終ならチーム名を検出、チームメンバーの繰り返し追加、をしています。


Step3:

C2 ? E2 を選択して、名簿最終行までドラッグして式を連続データにします。


Step4:

D列、E列を選択してコピーしたら別のワークシートの A1 に「値の貼り付け」でペーストします。


Step5:

貼り付けられたデータを、最優先キー 列A で並べ替えます。


Step6:

A列が空の範囲の行を選択して削除すれば完成です。

◎質問者からの返答

ありがとうございます。いい方法ですね。


4 ● JunK
●18ポイント

http://investment.seesaa.net/files/team.xls

シーサー株式会社

蛇足かもしれませんが・・・ m(_._)m。


D?G列の4行以降では、IF関数を利用して、各チームの構成メンバーをカンマ区切りで一人ずつ順番に一つの文字列にしていっています。元データの最終行までいくと、各チームの構成メンバーのカンマ区切りデータが完成します。


そして、D?G列の2行では、最終行のデータを抽出しています。

抽出方法は、元データの数をI7にて、=ROWS(A:A)-COUNTBLANK(A:A)として算出して

※一旦、CODE関数等で数値データにするとcount関数が使えて簡単ですけど。

その情報を元にINDEX関数とOFFSET関数を利用して行っています。


そしたら、抽出した各チームの構成メンバーのカンマ区切りデータとタイトル行とを

TRANSPOSE関数にて、行列交換しててます。


最後に、末尾のカンマを消して完成です。


対象人数が増えた場合はA,B列にデータを付け加えて、D?G列の4行以降に一文字列化関数を貼り付けたり、

Eチーム等が増えた場合は、H列に新たに付け加えて、改良していけばよいかと思います。


尚、このファイルはすぐに消去します。

◎質問者からの返答

ありがとうございます。いい方法ですね。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ