過去の桐井戸端BBS (桐ver.9)
25607 アンケートの集計でクロス集計をして偏差値を出したい 斎藤 2004/03/25-17:58
こんにちは。皆さんのお知恵を拝借したく、投稿します。

今アンケートの集計をしているのですが、クロス集計の方法がわかりません。
データは
会社コード 店舗1 店舗2・・・店舗10 答1 答2 答3 答4 答5
というように並んでいます。
店舗コードは複数回答可で1が立っています。答1〜5は点数です。
回答数が20以上の店舗コードのみを抽出し、店舗コード×答1〜5でクロス集計して偏差値を出さなくてはなりません。

複数回答でなければ結合表で店舗ごとの点数の平均を出せばいいのですが、
複数回答なのでどうしたらいいかわからないのです。
何10種類ものグラフで報告書を作らなくてはならないので、
なるべく転置集計で書き出して・・・というように手動でやりたくないのです。

結果は
     件数    答1    答2 ・・・
----------------------------------------------
店舗1 (件数) (平均値) (平均値)
店舗2
店舗3

のような形にし、最終的には店舗ごとにそれぞれの答の偏差値を出し、棒グラフで出力します。

宜しくご教授お願いします。桐はVer.9です。

25609 転置集計でしょうか 佐田 守弘 2004/03/25-21:44
記事番号25607へのコメント
斎藤さん
書かれている文面に、私には良く理解できない部分がありますので、
確認を含めながら私の推定と推定に基づいた方法を述べます。
●データの形
 >会社コード 店舗1 店舗2・・・店舗10 答1 答2 答3 答4 答
 >5
なのですが、ファミリーレストランの様なチェイン店で、客からのアンケートの様なものを想像すればよいのでしょうか。

 >店舗コードは複数回答可で1が立っています。
この意味が良く解りません。まず1が立っているとは、評価対象の店舗に
1を付けるという意味で良いですね。
1つのデータ行(レコード)で、複数の店舗に同時に1がついている、つまり
店舗1と3に対して答1〜5を1つの行で回答しているのもありですか?
もしそうであるとすると、答1と5は、店舗1、2〜4は店舗3という場合も
出て来てしまいそうで、答えと店舗の対応が良く解らなくなるのですが。
そうでなくて、店舗に立てる1は、1店舗のみなら比較的簡単です。

●回答対象の店舗数をカウントする
 >回答数が20以上の店舗コードのみを抽出し、
多分、この部分の処理で困っておられるのでしょうか。上記の仮定で、
1を立てる店舗は1つのみならば簡単です。

まず表を再定義して、何か適当な整数項目、仮に[数]を追加して下さい。
計算項目として値は常に1を書き込んでおきます。これが店舗数をカウントするポイントになります。

●店舗を1つの項目にする
店舗が店舗番号で表せるものとします。
[店舗]の項目を新たに作り、以下の様な計算式を設定して下さい。
 [店舗1]+[店舗2]*2+・・・+[店舗10]*10
つまり店舗nの番号に対応した値がここに入ります。
これがもう1つのポイントです。

●転置集計の方法
ここは書かれている通りです。
グループ項目として会社コードと店舗(上記の店舗番号)を指定します。
転置項目には、答1〜5を平均値で、また[数]を合計で指定して転置集計します。
店舗については[店舗]の項目に番号でまとめてあるので、これが縦に並びます。
「店舗1」の様な値ではなく、単に「1」ですが、後から直せば良いでしょう。
答えの集計は既にお解りの通りです。
そして[数]の合計値が、回答数の合計です。この値が20以上のものを絞り込めば、目的のデータになるはずです。

佐田守弘(KS-00119)
25619 Re:転置集計でしょうか 斎藤 2004/03/26-12:10
記事番号25609へのコメント
佐田先生、ご回答ありがとうございました。

>ファミリーレストランの様なチェイン店で、客からのアンケート
>の様なものを想像すればよいのでしょうか。
まさにその通りです。

> >店舗コードは複数回答可で1が立っています。
>この意味が良く解りません。まず1が立っているとは、評価対象の店舗に
>1を付けるという意味で良いですね。
はい、そうです。

>1つのデータ行(レコード)で、複数の店舗に同時に1がついている、つまり
>店舗1と3に対して答1〜5を1つの行で回答しているのもありですか?
>もしそうであるとすると、答1と5は、店舗1、2〜4は店舗3という場合も
>出て来てしまいそうで、答えと店舗の対応が良く解らなくなるのですが。
そこが困るところなんですが、本来は答1〜5は会社全体に対する評価のはずなんです。
でも、集計は店舗ごとに出したいということで、例えば店舗1と4と7に行ったことがあると答えている場合、
全ての店舗に同じ評価が入ることになります。

となると、複数回答のデータを複数行に分けて、店舗1つに対し1行のデータになるように加工すればいいんですね!
ありがとうございます。
さて、どうやって複数回答のデータを複数行に分けるか・・・
これから考えて見ます。

> [店舗1]+[店舗2]*2+・・・+[店舗10]*10
>つまり店舗nの番号に対応した値がここに入ります。これがもう1つの
これは目からうろこでした!
今までこのような集計をする際は#条件選択でもし店舗1が1なら1、店舗2が1なら2・・・と出していました。
この方が断然簡単ですね!本当にありがとうございました。
25622 Re:転置集計でしょうか いもん 2004/03/26-13:23
記事番号25619へのコメント
>となると、複数回答のデータを複数行に分けて、店舗1つに対し1行のデータにな
>るように加工すればいいんですね!ありがとうございます。
>さて、どうやって複数回答のデータを複数行に分けるか・・・
>これから考えて見ます。
>
>> [店舗1]+[店舗2]*2+・・・+[店舗10]*10
>>つまり店舗nの番号に対応した値がここに入ります。これがもう1つの
>これは目からうろこでした!

これは上記の「店舗1つに対し1行」ができた後の話なので念のため。
(結合表でできそうかな?)

25633 できました!! 斎藤 2004/03/26-23:44
記事番号25607へのコメント
佐田先生、いもんさん、ありがとうございました。
コメントをヒントに複数回答のものを複数行に直したらバッチリできました。

ちなみに複数行に直す方法ですが、

会社コード 店舗 答1・・・答10

という新しい表を作り、元表で店舗1に1が立っているものを絞り込み、
新規表で読み込み、項目「店舗」を1に置き換え、元表で店舗2に1が立っているものを絞り込み・・・と手動でやりました。
もっといい方法があるかもしれませんが、今の私の知識では精一杯の方法です。

どうも自分のレベル以上の仕事を引き受けてしまったらしく、別のところでまた引っかかってしまいました。
別スレッドで質問いたしますので、また宜しくお願いします。
25634 追記 斎藤 2004/03/26-23:47
記事番号25633へのコメント
そうそう、書き忘れましたが上記の方法でやったら転置集計をつかわなくても結合表でできました。
アンケート枚数が2万枚以上、会社数が150以上あり、それぞれの会社宛に報告書を作らなくてはならなかったので
手動で集計するのではなく結合表で絞り込めば全ての報告書が作れるのは非常に助かります。

本当にありがとうございました。

戻る