• ベストアンサー

エクセル 関数 3つ以上の複数条件にあった抽出 

*先日も同じ質問をさせて頂き、類似した様々な質問の中から色々検索してみては、というアドバイスを頂き、検索してみたのですが、わからなかったため、再度質問させて頂きたく投稿しました。(しつこくてすいません) *前回は質問が抽象的というご指摘でしたので、詳しく記入させて頂きます。(表がずれて見にくくなっていてすいません) Sheet1(例1) 項目/  氏名  生年月日  性別 年齢  要介護度  入所日数     たろう  S1.1.1   男  83   3    100     はなこ  T1.1.1   女  97   5    50     いちろう S2.1.1   男  82   4    90     じろう  T2.1.1   男  96   4    80 *たろう=セルC3  Sheet2(例)                  要介護度              1  2  3  4  5 男性 (人数)      ○  ○  ○  ○  ○    (平均年齢)    ×  ×  ×  ×  ×    (平均入所日数)  △  △  △  △  △ *Sheet1 をベースに Sheet2 の表の「○」「×」「△」に値を返したく「○」については Sheet3  性別  要介護度 男     1  *性別=セルA2 Sheet3を新たに作成し =DCOUNTA(Sheet1$C$2:$H$6,"",Sheet3!A2:B3)という関数を入力しそれぞれ値を返すことは何とかできましたが、その値が出た人数の「平均年齢」や「平均入所日数」などの値の求め方がわからない状態です。 無知のため、関数やマクロなど色々検索してみましたがやはり方法が分からず、どなたか教えて頂けないでしょうか??よろしくおねがいします。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.6

NO3です。 >(2)の計算式を入れてみたのですが、0になってしまいます…。 ⇒男性且つ、要介護度がヒットしない場合は「0」になります。  ヒットしない場合ですが、sheet1の列構成が数式と合っていない事が考えられます。  数式では、氏名をA列として、A:F列範囲を対象としていますので相違していましたら調整してみて下さい。 

asitaasita
質問者

お礼

2度も回答頂きありがとうございます。 アドバイス頂いた通り、Sheet1の列範囲の対象が相違しておりまして、無事、値を返すことができました!!別のシートを新たに作ったりしなくても、可能なんですね!!本当にありがとうございました。

その他の回答 (5)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

最もわかりやすい方法はシート1に作業列を作って対応することでしょう。 シート1ではたろうの名前がC3セルにあるとしてお示しのデータが並んでいるとします。 I3セルには次の式を入力して下方にオートフィルドラッグします。 =E3&G3 次のシート2にお望みの表を作るのですが、ここではA3セルに 男 と入力します。お示しのケースでは男性となっていますがシート1では男と使っていますので同じにします。 B3セルに人数、B4セルに平均年齢、B5セルに平均入所日数と文字列を入力します。 C2セルには1、D2セルには2、・・・と入力します。 C3セルには次の式を入力して右横方向にオートフィルドラッグします。 =COUNTIF(Sheet1!$I:$I,$A$3&C$2) C4セルには次の式を入力して右横方向にオートフィルドラッグします。 =IF(C3=0,"",SUMIF(Sheet1!$I:$I,$A$3&C$2,Sheet1!$F:$F)/C3) C5セルには次の式を入力して右横方向にオートフィルドラッグします。 =IF(C3=0,"",SUMIF(Sheet1!$I:$I,$A$3&C$2,Sheet1!$H:$H)/C3)

asitaasita
質問者

お礼

関数に関して「作業列」という言葉が出てたことはあったんですが、それをどう活用するか、という考えただったり、計算式がわからなかったので、大変参考になります。 丁寧な回答ありがとうございました。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.4

データベース関数にチャレンジされているようですので、データベース関数を使用する前提でのアドバイスを。 見た所、性別+要介護度がキーになる様ですの、Sheet1のデータベースにキーとなる列を1つ追加した方が楽になると思います(添付の図の「WORK」)。 Sheet3には、上に検索条件を並べ、左側に抽出するフィールドを並べます。 そして、データーベース関数で値を取得します。 添付の図の場合、 B3に =DCOUNTA(Sheet1!$C$2:$I$6,$A3,B$1:B$2) B4に =DAVERAGE(Sheet1!$C$2:$I$6,$A4,B$1:B$2) B5に =DAVERAGE(Sheet1!$C$2:$I$6,$A5,B$1:B$2) と、入れてB3:B5を右方向にコピーします。人数が0の時、0割エラーで#DIV/0!と表示されますが、それ以外はお望みの状態かと思います。 あとは、Sheet2の方で↓こんな感じでエラーの時は表示しないようにリンクを貼ってはいかがでしょう。  =IF(ISNUMBER(Sheet3!B3),Sheet3!B3,"")

asitaasita
質問者

お礼

ご丁寧な回答大変感謝しております。しかし、添付ファイルがあろうと思われる部分が真っ白な空白の状態になってしまっており、(たぶん、私のパソコンの設定がおかしい?)添付ファイルが開けません。ただ、計算式を参考にさせて頂き、関数の特性を勉強できるので、大変助かってます。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

sheet3を使用せずに計数する一例です。 (1)仮にsheet2の1行目は、A1から順に「男」,1,2,3,4,5を設定 (2)B2に=SUMPRODUCT((Sheet1!$C$2:$C$5=$A$1)*(Sheet1!$E$2:E$5=B$1))として右方向にコピー (3)B3に=IF(B$2,AVERAGE(IF(Sheet1!$C$2:$C$5=$A$1,IF(Sheet1!$E$2:E$5=B$1,Sheet1!$D$2:$D$5,""))),"")を入力、入力完了時にShift+ctrl+enterキー同時押下、右方向にコピー (4)B4に=IF(B$6,AVERAGE(IF(Sheet1!$C$2:$C$5=$A$1,IF(Sheet1!$E$2:E$5=B$1,Sheet1!$F$2:$F$5,""))),"")を入力、入力完了時にShift+ctrl+enterキー同時押下、右方向にコピー

asitaasita
質問者

お礼

ご回答ありがとうございました。早速、アドバイスいただいた通りに(1)のように設定し、(2)の計算式を入れてみたのですが、0になってしまいます…。

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.2

「○」「×」「△」のけいさんなら、たとえば、添付図で、 C4:=COUNTIF(Sheet1!$G$3:$G$6,C$3) C5:=IF(C$4=0,"",SUMIF(Sheet1!$G$3:$G$6,C$3,Sheet1!$F$3:$F$6)/C$4) C6:=IF(C$4=0,"",SUMIF(Sheet1!$G$3:$G$6,C$3,Sheet1!$H$3:$H$6)/C$4) として右方向にドラッグフィルすればよい。

asitaasita
質問者

お礼

ご回答大変うれしく感謝しておりますが、添付図をつけてくださったと思われるのですが、添付ファイルがありそうな部分が真っ白い空白になっており、添付ファイルをみることができません…。

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

=DAVERAGE(Sheet1!$C$2:$H$6,"年齢",Sheet3!A2:B3) でいかがでしょうか

asitaasita
質問者

お礼

早速できました!。”年齢”の部分を”日数”にして、平均入所日数の値も出すことができました。早速の回答本当にありがとうございます。

関連するQ&A

  • エクセル関数 複数の条件にあったデータの抽出

     パソコンに関してあまりに無知なために、色々検索しても意味がわからず、困って投稿しました。現在、仕事で、「データベース」的なものを作成しています。老人施設に入所している人の「データベース」なのですが、「氏名」「年齢」「性別」「要介護度」など項目をつけ、一覧は作成していて、その中から「IF関数」や「COUNTIF関数」など使用し、単純な男性のみの合計などは出来るのですが、例えば「60歳代の男性で要介護度が1の場合の人数」や「要介護3の男性の平均年齢」などの複数の条件にあった値が求められず困っています。  どなたか、おわかりになる方がいましたら宜しくお願いします。  

  • エクセル関数 複数条件検索について

    エクセル関数について質問です。 検索値を増やす場合の関数について教えてください。 セルA6に、セルA3とA4に入力した値と合致する値をSheet2から抽出し、抽出した値とA5の値を掛けるという以下の数式が入っています。 =IF(2-COUNTA(A3,A4),"",VLOOKUP(A3,Sheet2!A:AH,MATCH(A4,Sheet2!A$1:AH$1,1),0)*A5) Sheet2のリストに項目が増えた為、この数式をセルA2(新しく増えた検索値)とA3とA4に入力した値と合致する値をSheet2から抽出し、抽出した値とA5の値を掛けるという数式をA6入れたいのですが、この場合、どのように数式を直せばいいのでしょうか。 エクセルのバージョンは2007です。 ご教示下さい。よろしくお願いします。

  • エクセル関数 複数条件での抽出について

    エクセル関数について質問です。 行と列の交差する位置の値を取り出す方法に困っています。 添付の表があり、表の下の各セル、種類1(セルB15)、種類2(セルB16)、種類3(セルB17)に検索したい番号、記号をそれぞれ入力すると、3つの条件と合致する果物がセルB18に表示されるようにしたいのですが、 例)種類1「1」、種類2「2」、種類3「B」と入力→果物「りんご」 セルB18に=INDEX(C2:F13,MATCH(B15,A2:A13,0),MATCH(B16,B2:B13,0 ),MATCH(B17,C1:F1,0))の数式を入れるとエラー値 #REF! が返ります。 DGET関数も試しました。お手上げです・・ どうか教えていただけますでしょうか。エクセルのバージョンは2010を使用しています。 説明下手で申し訳ありません。よろしくお願いします。

  • 複数条件に一致する人数の合計を求める関数

    こんにちは、下記ののようなエクセルの表があり、 (1)59歳以下で、社会保険に加入している男性の人数。 (2)60歳以上で、社会保険に加入している男性の人数。 以上、2つを求めたいのですが、何かいい方法教えてください。 氏名   年齢  社保    性別 ●●   61    加入     男 ●●   25    未加入    女 ●●   44    加入     男 氏名・・・セルA 年齢・・・セルB 社保・・・セルC 性別・・・セルD

  • エクセルでの関数を使った条件抽出方法について

    エクセル初心者です。 エクセルでの関数を使った条件抽出方法についてどなたかご教授願います。 よろしくお願いします。 Sheet1の特定のセルに対して、Sheet2中にある条件に一致するセルの値を 表示させる方法がわかりません。 <具体的内容> 次のような2つのシートがあります。 Sheet1       -------------------------     A     B     C  1                2  2  費目1 3  費目2 4  費目3 ------------------------- Sheet2 -------------------------     A     B     C     D 1  2          1     2     3 3  費目2   100   200   300 4  費目1    30    10    20 5  費目3   150   350   250 ------------------------- Sheet1のC1のセルと同じ数値をSheet2の2:2行から探して、 一致する数値に該当する列の3~4行目の値を、 Sheet1のA2:A3の費目とSheet2のA3:A5の費目とが 一致するようにして、Sheet1のB2:B3に表示したいです。 このときSheet1のB2~B3にはどのような関数式を入れたらよいですか? 上の場合だと、Sheet1のB2=10、B3=200、B4=350となってほしいです。 HLOOKUP、COLUMNなど組み合わせてみたのですが、 全くうまくいきません。簡単ではないのでしょうか? どなたか教えてください、よろしくお願いします。

  • Excelの関数またはマクロを教えて下さい。

    Exsel2000の関数で、現在以下の関数まで出来たのですが、これを応用して検索値「A1」を2つのセル「A1&B1」にしたいのですが、どうすればよいのでしょうか?どなたか方法を教えて下さい。 =VLOOKUP(A1,Sheet1!$A$1:$E$2000,4) 上記の関数から判るように、これは 例えばSheet2のC1のセルにこの式を入れる場合、A1と同じ内容の値を、Sheet1のA列から検索して、そして同じ行のSheet1のD列の値をSheet2のC1のセルに返すという関数です。 これを応用して、「A1と同じ内容…のA1を、A1&B1の2つが一致するセルを検索して、同じ列のSheet1のD列の値をSheet2のC1のセルに返すという関数にしたいのです。 どなたかおわかりになる方がおりました宜しくお願いいたします。 また、マクロを使う方法でも良いのですが、当方マクロは詳しくないので出来るだけ判りやすくお願いいたします。

  • exdelで3つの条件から抽出

    初めて質問させて頂きます。 色々調べたのですが、ネット検索に弱いためかなかなか解決できずに困って、質問させていただきます。 3つの条件があって、それに合致するセルの値を抽出するエクセルの関数を教えてください。 例えば。 遊園地であるアトラクションに新規で乗った人数だけを日付ごとに抽出したいといったような場合です。 『アトラクション名』、『新規or再搭乗』、『日付』を条件に新規に乗った『人数』を出すには、vlookupでは抽出できず、悩んでいます。 よろしくお願いします。

  • エクセルのVLOOKUP関数で…(複数条件?の抽出)

    ●シート2、A列に部品正式名称、B列に部品略称の一覧表(部品の種類は約500点) ●シート3、A列に略称、B,C,D,E,F,G列と続けて寸法などの詳細を記した一覧表 があります。 ●シート1に検索一覧表として、B列(B3~B8)は項目、セルC3~C8にVLOOKUPでシート3の情報が抽出されるようにしてあります。 C1で略称を入力し抽出するのはOKなのですが、正式名称で入力しても同じようにシート3の情報を抽出するようにしたいです。 (IFを使って思いつく関数を組合わせてみたりしたのですが、うまくいきませんでした(TT) できたら関数で何か良い方法ありますでしょうか? 宜しくお願いします。

  • エクセル関数について

    エクセルの関数についてなのですが、例えば「セルA3」に「セルB2」の値を表示させるには「=(B2)」と「セルA3」に表示させてます。別のSheetの値も表示できるのでしょうか?例えば「Sheet1.Range("A3")」の値をSheet2のA1に表示させたい場合Sheet2のA1にはどのような関数を入力していけばよいのでしょうか?VBAは使わずに表示したいのですが。関数はまだほとんど使ったことがないので分かる人いたら教えてください。よろしくお願いします。

  • エクセルで条件をつけて数を数える(ちょっと複雑)

    エクセルで条件をつけて数を数えたいのですが、ちょっと複雑です。     名前    性別     年齢        たろう    男      5     はなこ    女      4     じろう    男       3     ともこ    女       4     ようこ    女       2     たかし    男       3     はるみ   女        5 抽出したい条件:性別は男で、5歳でもなければ3歳でもない(年齢はこの例のみならずいかなる年齢でも5歳と3歳は省きたい) です。 性別は男で5歳の人数に関しては、SUMPRODUCT関数で解決できたのですが、この問題がわからず色々サーチしたのですが、たぶんどこかで同じ質問が出ているとは思うのですが、どーーしても探せなかったので、どうぞよろしくお願いいたします。   

専門家に質問してみよう