こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

アンケート結果の集計を関数にて対応したいです。

現在、アンケート結果をエクセルにて集計しようと試みております。

ご教示いただけると非常に助かります。

【実現したいこと】
添付ファイル内の<Sheet2>が求めたい表になります。
具体的にご説明すると、
A1を第一希望にする人は誰でその人の地域はどこか。
A2を第一希望~・・・
という集計をしたいと考えております。
その際、セル内に、
---------------------------
Aさん - 東京
Bさん - 神奈川
---------------------------
という形で表示したいのですが、その際、人の名前と地域の間に
■「半角スペース」「-」「半角スペース」
と複数の人が存在する場合は
■地域の後で「改行」
を入れたいと考えております。

【データ】
<Sheet2>に反映させるデータは<Sheet1>の様に集めます。

マクロを使わずに関数で対応出来る方法があれば大変助かります。
Sheet1からSheet2に直接集計する事が難しい場合は別途シートを用意し、
そのシートにてセルをCONCATENATE(式の中で、改行の為にCHAR(10)も使う)等を利用する事も検討いたしました。

皆様のお知恵をお借り出来れば幸甚です。

何卒、よろしくお願い申し上げます。

投稿日時 - 2016-03-05 00:40:05

QNo.9138036

すぐに回答ほしいです

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

 今仮に、Sheet2のA列のセルには「A1」~「A3」等の希望の種類が最初から入力されていて、Sheet3のA列~C列を作業列として使用するものとします。

 まず、Sheet3のA2セルに次の様な関数を入力して下さい。

=IF(INDEX(Sheet1!$D:$F,ROW(),COLUMNS($A:A))="","",INDEX(Sheet1!$B:$B,ROW())&" - "&INDEX(Sheet1!$C:$C,ROW())&IFERROR(CHAR(10)&INDEX(A3:INDEX(A:A,ROWS(A:A)),MATCH(INDEX(Sheet1!$D:$F,ROW(),COLUMNS($A:A)),INDEX(Sheet1!$D:$F,ROW()+1,COLUMNS($A:A)):INDEX(Sheet1!$D:$F,ROWS(A:A),COLUMNS($A:A)),0)),""))

 次に、Sheet3のA2セルをコピーして、Sheet3のB2~C2のセル範囲に貼り付けて下さい。
 次に、Sheet3のA2~C2のセル範囲をコピーして、Sheet3のA列~C列の3行目以下に貼り付けて下さい。

 次に、Sheet2のB2セルに次の様な関数を入力して下さい。

=IF(COUNTIF(INDEX(Sheet1!$D:$F,,COLUMNS($B:B)),$A2),INDEX(Sheet3!A:A,MATCH($A2,INDEX(Sheet1!$D:$F,,COLUMNS($B:B)),0)),"")

 次に、Sheet2のB2セルをコピーして、Sheet2のC2~D2のセル範囲に貼り付けて下さい。
 次に、Sheet2のB2~D2のセル範囲をコピーして、Sheet3のB列~D列の3行目~4行目に貼り付けて下さい。


 以上です。

投稿日時 - 2016-03-05 06:06:36

お礼

非常にわかりやすいご説明、ありがとうございました。
実際に対応できました。
本当にありがとうございます。
この様なやり方があるのですね。
非常に勉強になりました。
重ねてお礼申し上げます。

投稿日時 - 2016-03-05 08:36:05

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問