• 締切済み

VLOOKUPとIFCOUNTの組み合わせについて

初めての投稿です。 下記の様な場合、どの様な関数で値を返すことができますでしょうか。。。 【 シート1の列Aにあるデータを参照し、該当があった場合、シート1のM列にある「特定データの合計値」をシート2のE3に返す 】 ※シート2のE3のセルにVLOOKUPとIFCOUNTの組み合わせの関数を入れる形になるかと・・・ ご存じの方がいらっしゃったら、是非ご教授頂けますでしょうか。

noname#213656
noname#213656

みんなの回答

回答No.11

SUMPRODUCT関数を使って集計する方法をご紹介します。 Sheet1A1:A1000とM1:M1000にデータがあるとします。A列には名前、M列には商品名があります。 名前が[吉田]で、商品名が[テレビ]のデータ件数を求める場合は、 =SUMPRODUCT((Sheet1!$A$1:$A$3000="吉田")*1,(Sheet1!$M$1:$M$3000="テレビ")*1) と入力すれば抽出できます。 添付画像の右側のような集計表を作成します。 左端と上端の値を参照するように変更すると、 B2セルの関数は =SUMPRODUCT((Sheet1!$A$1:$A$3000=$A2)*1,(Sheet1!$M$1:$M$3000=B$1)*1) になります。 B2セルをコピーしてB3:B12にペーストすると、 Sheet1!$A$1:$A$3000 Sheet1!$M$1:$M$3000 行も列も絶対参照になっているので、そのままです。 $A2は行が相対参照なので、$A3,$A4,$A5…"林","長谷川","山村"…と変わります。 B$1は行が絶対参照なので、ペーストしても変わりません。 B2:B12の関数は、各人物の「テレビ」のデータ件数を求めることができます。 次にB2:B12をコピーして、C2:K12に貼り付けます。 Sheet1!$M$1:$M$3000=B$1 B$1は列が相対参照なので、C$1,D$1,E$1…"テレビ"、"パソコン"、"モニター"…と変わります。 こうすれば、コピー&ペーストで集計表を作成することができます。 全部のデータを合計した値(集計表の右下の青いセル)は1000になっています。 Sheet1のデータの最終行と同値になります。 Sheet1にデータを追加すれば、集計表の結果も変わります。

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.10

> (【シート2】はあと回しとして) 【シート1】にて一例。 このあと始末を忘れてた…? 【シート1】から B(ID)  E(●●)  F(■■)  G(□□) のブロックを「切り抜き」【シート2】に「貼り付け」てチョン! … でした。   

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.9

>【シート1】    A(ID) M(評価) -----------------  1  #1   ●●  2  #1   ■■  3  #1   □□  4  #4   ●●  5  #5   □□  6  #3   □□ に対し、(【シート2】はあと回しとして)【シート1】にて一例。    B(ID)  E(●●)  F(■■)  G(□□) ----------------------------------------------  1  #1    1     1     1         ↑  =COUNTIFS(($A$1:$A$6),$B1,($M$1:$M$6),"●●")              ↑       =COUNTIFS(($A$1:$A$6),$B1,($M$1:$M$6),"■■")                    ↑          =COUNTIFS(($A$1:$A$6),$B1,($M$1:$M$6),"□□")  2  #2    0     0     0  3  #3    0     0     1  4  #4    1     0     0  5  #5    0     0     1  6  #6    0     0     0   

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.8

>【 シート1の列Aにあるデータを参照し、該当があった場合、シート1のM列にある「特定データの合計値」をシート2のE3に返す 】 ひとまず「シート2」は忘れて、「列Aにあるデータを参照し、該当が」あるか否か、の方を考えましょう。 最も単純なのは、該当する「ID」は指定したセル範囲に書きこむ場合。 これなら、COUNTIF で ”該当する「ID」かつ条件「●●」が true な「人数」を集計できそう。 こっちの方が難問なのかも…。   

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.7

>シート1のM列は数値ではなく、テキストになります。 >そのテキストが「●●」の個数の合計をカウントしたいのです。    A    M -----------------  1  #1   ●●  2  #2   ■■  3  #3   □□  4  #4   ●●  … …  10 #10   ●● それだけだのカウントなら、行範囲 (M1:M10) にて単一条件「●●」の場合、 =COUNTIF(M1:M10,"●●") で結果を得られそう。 (相手はスプレッドシート、正確な「仕様」無しじゃ使える答が得られません)   

noname#213656
質問者

補足

178-tallさん ご指摘ありがとうござます。 おっしゃるとおり、正確な仕様なしでは無理ですね…大変失礼致しました。 【シート1】   A(社員ID) M(評価) -----------------  1  #1   ●●  2  #1   ■■  3  #1   □□  4  #4   ●●  5 #5   □□  6  #3   □□  … …  10 #1   ●● 上記のシートをシート1として、シート2に下記の様な表を作成し、 「シート1の社員IDを参照して、その社員の評価を評価種類別にカウント」したいのです。 【シート2】     B(社員ID) E(●●)   F(■■) G(□□) ----------------------------------------------  1  #1    2     1     1  2  #2    0     0     0  3  #3    0     0     1  4  #4    1     0     0  4  #5    0     0     1  … … <補足> ※随時入力、編集するシートはシート1となります ※シート1を入力、編集すると、シート2が自動更新される・・・と言う仕様にしたいです

  • shintaro-2
  • ベストアンサー率36% (2266/6244)
回答No.6

>シート1のM列は数値ではなく、テキストになります。 >そのテキストが「●●」の個数の合計をカウントしたいのです。 > 説明が拙くてごめんなさい・・・。 つたないと言うよりは、 単に足りないだけですけど 文字データの個数なら、 Dcountaを使います。

参考URL:
http://okwave.jp/answer/new?qid=9060691
  • shintaro-2
  • ベストアンサー率36% (2266/6244)
回答No.5

>sumifも試しましましたが、やはりそれでは解決しませんでした…。 どうやって駄目だったのかさっぱり伝わってきませんが? 例えば sheet2のA2に検索条件があったとすれば sheet2のB2に =sumif(sheet1!a2:a100,a2,sheet2!m2:m100) と入力すれば、シート2のA2の社員IDに対応するシート1のm列の値を合計してくれますが? どんな元データで、どこにどんな式を入れたのですか?

参考URL:
http://pc.nikkeibp.co.jp/article/NPC/20070605/273650/
noname#213656
質問者

補足

>例えば >sheet2のA2に検索条件があったとすれば >sheet2のB2に >=sumif(sheet1!a2:a100,a2,sheet2!m2:m100) >と入力すれば、シート2のA2の社員IDに対応するシート1のm列の値を合計してくれますが? シート1のM列は数値ではなく、テキストになります。 そのテキストが「●●」の個数の合計をカウントしたいのです。 説明が拙くてごめんなさい・・・。

  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.4

”M列にある「特定データの合計値」”がみな同一値 (M) なら、  COUNTIF ( ) の結果に M を乗算。 …じゃなければ、結構メンドウ。  列 A の該当行のほかの列に「目印文字」を入れてる。  M 列にて「目印文字」に該当する行だけを合計。 … が一案。 とりあえず、ドッチですか?    

noname#213656
質問者

補足

178-tallさん >”M列にある「特定データの合計値」”がみな同一値 (M) なら、 >COUNTIF ( ) の結果に M を乗算。 M列の値(テキスト)は同一値ではありません。。。 M列の値は数種類あります。 ちなみに、人材の情報を管理している表になります。 シート1のA列には、「人材を管理する為のID」があり、 そのIDを参照し、シート1のM列にある「●●」や「■■」を集計し、 その結果をシート2のE3(●●)、F3(■■)に返したい・・・と言うのが今回のご相談です。

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.3

IFCOUNT? 此処は Excel の部屋ですけど・・・

noname#213656
質問者

補足

msMikeさん すみません。 COUNTIFと入力したつもりでした。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

シート2!E3=SUMIF(シート1!A:A,"該当",シート1!M:M) ※1."該当"の部分によっては、セル参照も可 ※2.シート1!Aの条件が一致でなく範囲の場合は シート2!E3=SUMIFS(シート1!M:M,シート1!A:A,">0",シート1!A:A,"<100") のようになります。 ※3.シート1!Aの条件が複数の場合は、SUMIFSの足し算で対応 シート2!E3=SUMIF(シート1!A:A,"条件1",シート1!M:M)+SUMIF(シート1!A:A,"条件2",シート1!M:M)

noname#213656
質問者

補足

mshr1962さん ご教示頂いた内容を試しましたが、はやり解決出来ませんでした。 ※私の読解力が弱いのだと思いますが…

関連するQ&A

  • エクセル2003 関数 IFとVlookupの組み合わせについて

    エクセル2003 関数 IFとVlookupの組み合わせについて IF関数とvlookuo関数を組み合わせて関数を組もうとしています。 vlookupしたい元データが18万あるのでシートを(1)~(3)に分けています。 やりたいことは、 シート「(1)1~60,000」     A列:ID B列:社名 シート「(2)60,001~120,000」 A列:ID B列:社名 シート「(3)120,001~180,000」 A列:ID B列:社名 シート「集計」 このシートに関数の結果を表示したいです シート「集計」のH9のセルにIDを入れたらI9のセルに社名が自動表示される。且つH9のセルが空欄ならI9のセルも空欄になる。※入るIDはシート(1)~(3)のどこかにあります 関数教えて下さい。よろしくお願いします。

  • 関数Vlookup

    関数 VLOOKUPで検索値を参照したとき、範囲に該当データがあれば いいのですが、無いと「#N/A」の表示がでます 該当データがない場合は、何も表示のないようにするには セルに例えば =VLOOKUP($K24, 全体!$A$5:$E$60,4, FALSE)の場合 どのような工夫を追加したらいいかを教えてください

  • VLOOKUP関数の範囲をセルで指定したいと思っています。

    VLOOKUP関数の範囲をセルで指定したいと思っています。 B1:参照シート名(VLOOKUP関数で使用する範囲があるシート) C2:範囲の開始位置 E2:範囲の終了位置 B3:G3:列番号(B3の値は、B6:B8の範囲で使用する列番号、 D3の値は、D6:D8の範囲で使用する列番号) これらのセルに入力された情報をもとにB6:G8の範囲にVLOOKUP関数を 反映させたいと思っています。 例えば、 B1に参照シート名「2ケタ」 C2にVLOOKUP関数の範囲の開始位置「A5」 E2にVLOOKUP関数の範囲の終了位置「G7」 B3に範囲の列番号「2」がある場合 B6に「=VLOOKUP(A6,'2ケタ'!A5:G7,2,0)の関数を入力。 B2に参照シート名「3ケタ」 C5にVLOOKUP関数の範囲の開始位置「B5」 E2にVLOOKUP関数の範囲の終了位置「H7」 C3に範囲の列番号「3」がある場合 C6に「=VLOOKUP(A6,'3ケタ'!B5:H7,3,0)の関数を入力。 といった感じです。 現在、B6に「=VLOOKUP($A6,INDIRECT($B$1&"!a5:g7"),INDIRECT("$b$3"),0)」と 関数を入力して、VLOOKUP関数の「範囲の参照シート名」と「列番号」の情報は セルから持ってくることができました。 しかし、「a5:g7」という範囲だけは、INDIRECT関数をうまく入れることができません。 どのように関数を入力したら、上手くいくのか、教えていただけないでしょうか。

  • ExcelでのVLOOKUP関数について

    キー1を1000倍したうえで完全一致のVLOOKUP関数を使うと#N/Aエラーが発生します。 表示上は同じように見えますが内部的に異なる値となっているのでしょうか? 試しにエラー行に対して、キーとターゲットとなる当該セルを「=」でつないで確認しても「TRUE」となります。 添付画像は、 検索先としてA列に基準キーを130.168~130.192(step 0.001)で各行へ入力し、B列はA列を1000倍、C列はB列をROUND関数で整数値に丸めたものをキーとしました。 D列にVLOOKUPで参照する値を入力し、E列以降で以下の異なるパターンで値を参照しています。 (1)【E・F列】 ・E列に整数値をキーとして130168~130192(step 1)で入力。 ・E列をキーとしてB~D列のVLOOKUP関数としています。   『=VLOOKUP(E3,B:D,3,FALSE)』 (2)【G・H列】 ・G列にE列/100をキーとして計算。 ・G列をキーとしてA~D列のVLOOKUP関数としています。   『=VLOOKUP(G3,A:D,4,FALSE)』 (3)【I列】 ・E列をキーとしてC~D列のVLOOKUP関数としています。   『=VLOOKUP(E3,C:D,2,FALSE)』 シートを複製し、キーの入力範囲を0.001~0.025(E列は1~25)にした場合はエラーがでませんでした。 その他の確認としてはTEXT、JIS、ASCなどを組み合わせて文字列としたキー同士のVLOOKUPではエラーにならず値を参照できています。

  • excelのvlookup関数で勝手に引用符がつく

    excelのvlookup関数を使ってあるシートを作っています。 「basedata」というシートに3列表をつくり、1番左にキー、2番目と3番目に値をいれ、この表を別シートから検索にいっています。 検索元のシートには 文字列 文字列からMID関数で切り出した数値 検索1 検索2 の4列があります。 やりたいことは2列目の切り出した数値を元にして、basedataのキーを検索しにいき、検索1の列にbasedataの2列目の値を、検索2に3列目の値をいれたいと思っています。 =IF(ISERROR(VLOOKUP(B2,basedata!A2:E56324,2,0))=TRUE,"",VLOOKUP(B2,basedata!A2:E56324,2,0)) という式を検索1のセルに入力した場合、何も表示されず、B2に実際に入っている値を引用符なしで直うちすると値が表示されます。ステップインで分析すると、参照にした場合、参照値が引用符で囲われており、これが原因かと思うのですが、何か回避方法はないでしょうか。

  • ifとvlookupに代わるようなマクロ

    お願いします。 一行1件で900件程度のデータがあります。1件当たりの項目(列)は150ほどです。住所録.xlsというファイルです。 これとは別に、個別1.xls~個別30.xlsというファイルがあり、それぞれシートが30ずつあります。 このシート全てに同一の個票フォーマットを作りました。vlookupやifとvlookupの組み合わせ関数をそれぞれの該当セルに入れれば各データは取り出せるのですが、非常に重く実用に向きません。こういった作業を効率よく行えるマクロをお教え願えませんでしょうか? 宜しくお願いいたします。

  • vlookupの結果があるセルの書式を取得したい

    vlookupの結果があるセルの書式を取得したい =VLOOKUP(検索値,範囲,列番号,検索の型)で値を取ってくることは 出来ますが、その値の入っているセルの書式を取得したい。 Sheet1の セルA1に、検索したい値が入っていて、 セルB2にVLOOKUP関数が入り。 範囲はSheet2のA1:D1000となっていて、 列番号に4と入っていて10行目に 検索値と一致する値が入っていた場合に、D10の値は VLOOKUP関数で持ってこれますが、D10のセル書式を セルB2に反映させたいのですが、どのようにすれば良いでしょうか? VBAでプログラムしないとダメでしょうか?

  • VLOOKUPによる他シートの値参照

    初心者で以下の処理を行うコーディングの方法が分りません。 いろいろと他の質問、サイトを調べましたが、解決できませんでしたので、ご指導頂ければ有り難いです。 (1)"Sheet1"に下記例の通り、2列にデータが並んでいる。  左列には商品、右列にはその単価がセットされている。 (例) 商品1  \11 商品2  \22 商品3  \33 : (2)別シート"Sheet2"の左列には、商品が"sheet1"とは 異なる順序で並んでいる。また同一商品が複数存在することもある。 この商品の右列にそれぞれの単価をセットしたい。 商品3  (Sheet1を参照して値をセット) 商品7  (Sheet1を参照して値をセット) 商品1  (Sheet1を参照して値をセット) : 、って感じです。EXCEL関数の"VLOOKUP"を使おうと思っているのですが、どうも思った通りの結果がでません。 商品のデータ数は当然変動するのでVLOOKUPの参照セルに変数を使おうと思っているのですが、 その方法がまずいのでしょうか?

  • VLOOKUP関数 正しい値が返されない

    sheet1にデータリストを入力、sheet2のA1にコード番号を入力し以下の表にSheet1の対象データを参照するというところ(VLOOKUP関数のみ)まではよかったのですが、元データに空欄の時は「データなし」と表示過去の質問を参照して下のような式に変更しました。 =IF(ISERROR(VLOOKUP($A$1,範囲,列番号,"")),”データなし”,(VLOOKUP($A$1,範囲,列番号,FALSE))) はじめは正しく表示はされたのですが、A1に違う値を入力し直しても値が変化しません。 エラー表示はでませんが、数式がどこか間違っているのでしょうか。 どなたかお知恵をお貸しください。

  • Excelでの関数vlookupの応用

    関数については、ほとんど初心者の者です。 vlookup関数では、縦型の表の中から必要なデータを取り出すことができますが、それを応用して取り出した数値の合計を出すことはできますか? もし、vlookup関数以外の関数で、そのようなことをできる関数を知っている方、教えてください。お願いします。 (例:セルA列に科目、B列に科目コード、C列に金額の表で、    D列セルに科目コードを打ち込むと、E列にはB列から    抽出した科目コードの金額(C列)を合計して反映)

専門家に質問してみよう