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

複数条件での抽出をしたいです
現在エクセル関数でアンケート集計をしています。

sheetのI列には出身都道府県
sheetのK列には職業
sheetのO列にはアンケートの回答(4択)の結果が入っています。

例えば関東地方で回答1と答えた人は、下記の様な式を使って成功しています。

=SUMPRODUCT((Sheet!$I$1:$I$5000={"茨城県","栃木県","群馬県","埼玉県","千葉県","東京都","神奈川県"})*ISNUMBER(FIND(INDEX($AH$1:$AH$10,COLUMN(F1)/2),Sheet!$O$1:$O$5000)))

上記の回答から更に、K列で主婦と答えた人で絞りたいのですが、それはどういった式を書けばよろしいでしょうか。誰か助けて下さい。自分の手に負えない式をみなさんのお力を借りて書いていたら分からなくなってしいまいました。

A 回答 (4件)

作成例:


=SUMPRODUCT(
 (Sheet!$I$1:$I$5000={"茨城県","栃木県","群馬県","埼玉県","千葉県","東京都","神奈川県"})
*(Sheet!$K$1:$K$5000="主婦")
*ISNUMBER(FIND(INDEX($AH$1:$AH$10,COLUMN(F1)/2),Sheet!$O$1:$O$5000))
 )


前回の「関東列を追加するなどで合理化しましょう」といったアドバイスは変わりませんが,とりあえず趣味列の組み込みはだいぶイイ感じで合わせられてると思います。
ご質問の数式は他のケースで出てくるようなイミフメイの関数を利用していませんから,見た目だけで入っていっても,前回ご相談時点での最初のパターンの式とさほど変わらず慣れだけで組み上げていけます。
    • good
    • 0
この回答へのお礼

ありがとうございます!式を1つ1つ抜きっとってなんとか理解していきます。助かりました!

お礼日時:2010/05/25 12:28

(他の人が作った回答の?)関数を理解しないで


そのまま使うのは保守できないことが多いので良くないですよ。
応用が利かない。

例えば
「出身都道府県」と「職業」と「出身都道府県(職業)」
こういう値があれば
「東京」で探したり、「主婦」で探したり「東京都(主婦)」で探したり
することが可能になるかと思います。式を書くことがすべてではないです。
検索に必要な値を別途用意することも手段の一つです。
どうでしょうか。

すでにある式を活用したいなら、各パーツがどうなっているかを見ることからですね。
INDEX($AH$1:$AH$10,COLUMN(F1)/2),Sheet!$O$1:$O$5000)
FIND(INDEX($AH$1:$AH$10,COLUMN(F1)/2),Sheet!$O$1:$O$5000))
ISNUMBER(FIND(INDEX($AH$1:$AH$10,COLUMN(F1)/2),Sheet!$O$1:$O$5000)))

Sheet!$I$1:$I$5000={"茨城県","栃木県","群馬県","埼玉県","千葉県","東京都","神奈川県"}

SUMPRODUCT( )

どこから助けたらよいか明示してください。
    • good
    • 0
この回答へのお礼

今回ご回答頂きまして、
別の列で計算をしてそこから出力するという方法を学ぶことができました。
助けを必要としている部分を明確に出来ず、ご迷惑をおかけいたしました。

ありがとうございます!

お礼日時:2010/05/25 12:29

難しい式を使うよりもご自分で理解できる式を使うことでしょう。


関東地方などの地方名が変わるたびに式を変えることも容易ではありません。
作業列を作って対応する方法です。一度お試しください。
R1セルには次の式を入力して下方にオートフィルドラッグします。

=I1&K1&O1

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

=IF(COUNTIF(AA:AA,I1)=0,"",INDEX(AB:AB,MATCH(I1,AA:AA,0))&K1&O1)

AA1セルには例えば茨城県と入力してAB1セルには関東地方とか入力します。他の県についても同様に下方に入力します。

お求めの答えを得る方法ですがU1セルには県や地域名と、V1セルには回答、W1セルには職業、とそれぞれ項目名を入力します。
U2セルには関東地方なら関東地方と入力します。V2セルには1とか2とか回答の数値を入力します。W2セルには職業、主婦などと入力します。
その上で該当人数ですが、それはX列に表示させることにしてX2セルには次の式を入力して下方にオートフィルドラッグします。

=IF(COUNTIF(AA:AA,U2)>0,COUNTIF(R:R,U2&W2&V2),IF(COUNTIF(AB:AB,U2)>0,COUNTIF(S:S,U2&W2&V2),""))
    • good
    • 0
この回答へのお礼

ありがとうございます。理解できる式を使いたいと思います!

お礼日時:2010/05/20 20:29

>例えば関東地方で回答1と答えた人は、下記の様な式を使って成功しています。



>=SUMPRODUCT((Sheet!$I$1:$I$5000={"茨城県","栃木県","群馬県","埼玉県","千葉県","東京都","神奈川県"})*ISNUMBER(FIND(INDEX($AH$1:$AH$10,COLUMN(F1)/2),Sheet!$O$1:$O$5000)))

本当に「成功」しているのでしょうか?

「COLUMN(F1)/2」の意味が良くわからないのですが(セルが結合されている?)、上記の数式はO列に「1」と入力されているセルの合計ではなく「数字」を合計しています。

O列が1のセルの合計なら、Sheet!$O$1:$O$5000)の部分は(Sheet!$O$1:$O$5000)=1)として、カンマではなくすべて掛け算の式にするのが正解です(O列に文字列セルが含まれない場合)。

>上記の回答から更に、K列で主婦と答えた人で絞りたいのですが、それはどういった式を書けばよろしいでしょうか。

通常なら、以下のようにK列のデータが「主婦」という条件を「*」で追加するだけです。

(Sheet!$K$1:$K$5000="主婦")

>誰か助けて下さい。自分の手に負えない式をみなさんのお力を借りて書いていたら分からなくなってしいまいました。

ご自分で理解できない数式を使用した場合は、数式が正しい値を表示していないときに間違いに気がつかないので、重大なミスを犯す恐れがあります。

したがって、SUMPRODUCT関数の配列数式の意味を十分に理解してから使用するようにしたほうが良いと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます!地に足のついたやり方をしたいと思います。

お礼日時:2010/05/20 20:28

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