• 締切済み

任意の回数を

お世話になります。エクセルの関数で質問です。 田中 0         斉藤 0  山本 -100 田中 0 斉藤 -50 山本 0 こういう上記の数表があったとして、同シート内に、以下のまとめの表を作り 田中 (0の回数) 斉藤 (0の回数) 山本 (0の回数) という感じに、()の部分に関数を入れ、0だった時の回数を抽出する事は出来ますか? COUNTIFを組み合わせる?ところで頓挫してしまっています・・・ よろしくお願いします。

noname#136817
noname#136817

みんなの回答

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

COUNTIF関数を使うことをまず初めに考えるでしょう。しかしながら二つの条件を同時に満たすデータの数を求めるとなると難しいですね。SUMPRODCT関数などが考えられますがデータの数が多くなりますと計算が重くなりますので必ずしも推奨されません。ご自分のレベルに合った比較的簡単な関数を使うことをまず考えるようにしましょう。 それには作業列を作って対応することです。作業列が目障りでしたらその作業列を選択して右クリックして「非表示」を選択することで隠すこともできます。 例えばシート1のA2セルから下方に氏名が、B2セルから下方にデータの数値が入力されるとします。 作業列としてC2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(COUNTIF(A$2:A2,A2)=1,MAX(C$1:C1)+1,"") この式は入力された氏名をダブりのない形で別の表に表示させるために使います。 また、作業列としてD2セルには次の式を入力して下方にオートフィルドラッグします。 =A2&B2 そこでお求めの表ですが別のシートのA2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(ROW(A1)>MAX(Sheet1!C:C),"",INDEX(Sheet1!A:A,MATCH(ROW(A1),Sheet1!C:C,0))) これでシート1でのダブりのない氏名がA列に表示されます。 そこで、0だった時の回数をB列に表示させるわけですが、その0という条件の数値をB1セルに入力することにします。それによってB1セルの数値を-50などと変えることでー50の回数を表示させることもできるようになります。 B2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",COUNTIF(Sheet1!D:D,A2&B$1)) これでB1セルに入力した数値の回数を各人について表示させることができます。 以上のような作業は幾分負担に感じるかもしれませんが使われている関数や式の組み立て方はエクセルを使ってゆく上で大切なものばかりです。式のカッコ良さではありません。ご自分の力にあったエクセルの基本をまず学ぶことです。そのことで複雑な課題も解決できるようになるのです。ぜひ試験をしてみてください。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 当方使用のExcel2003以前のバージョンだとSUMPRODUCT関数が使えると思います。 Excel2007以降のバージョンですとCOUNTIFS関数が使用可能です。 一例です。 ↓の画像のようにC列を作業用の列としています。 そしてF1セルに求めたい数値を入れるようにしてみました。 作業列C2セルに =IF(COUNTIF($A$2:A2,A2)=1,ROW(),"") という数式を入れオートフィルでずぃ~~~!っと下へコピーしておきます。 E2セルに =IF(COUNT(C:C)<ROW(A1),"",INDEX(A:A,SMALL(C:C,ROW(A1)))) F2セルに =IF(E2="","",SUMPRODUCT(($A$1:$A$100=E2)*($B$1:$B$100=$F$1))) という数式を入れ、E2・F2セルを範囲指定 → F2セルのフィルハンドルで下へコピーすると画像のような感じになります。 参考になれば良いのですが・・・m(_ _)m

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

名前がA列 次の数値がB列で、まとめの名前の列がD列とした場合 たとえばE列に =SUMPRODUCT(($A$1:$A$6=D1)*($B$1:$B$6=0)) としてみてください。

関連するQ&A

  • EXCELでの項目別集計

    皆さんのお知恵をお貸し下さい。 複数行、複数列にまたがって名前が入力されています。 名前ごとの集計をとりたいのですが、 どうやったらよいでしょうか 田中  山本  斉藤      斉藤  伊藤 山崎  田中     これを 田中  2 山本  1 斉藤  2 伊藤  1 山崎  1 という風に集計をとりたいのですがピボットテーブルではうまくいきません。 名前は特定できるものでなくいくつも種類があるのでCOUNTIFでは対応できません。 何か用意方法はないでしょうか よろしくお願いいたします。

  • エクセルでデータ抽出

    エクセル初心者です。 エクセルでに次のような表を作っております。 (Sheet1) 担当 会社 郵便番号 住所 菊地 A社 0000000 ○○○○ 菊地 B社 0000000 ○○○○ 菊地 C社 0000000 ○○○○ 田中 D社 0000000 ○○○○ 田中 E社 0000000 ○○○○ 山本 F社 0000000 ○○○○ 山本 G社 0000000 ○○○○        ・        ・        ・ と800件くらいあるのですが、 これを 別シート(Sheet2)で名前を菊地と入力すると菊地のデータが一覧で出るようにしたいのですが、どうしたらよいでしょうか。 できれば、マクロを使わずに関数でやりたいです。 VLOOKUPかな?と思い、いろいろ調べたのですが、抽出したいデータが複数あるので、悩んでおります。 すみませんが、どなたかご指導お願い致します。

  • エクセルで出現回数のランキング表を作りたい

    ・6桁以下の選手番号 ・試合日(西暦8桁) ・試合結果 ・その他 無作為の順番で上記のデータが入ったエクセルの表があるのですが、 この表を使い、試合に出た回数が多い順番で選手をランキング付けしたいのです。 関数やVBAは若干かじったことある程度の経験しかないのですが、 COUNTIF関数を使い、その選手にとって、 その試合が何試合目なのかは、一応目で分かるようにはなりました。 ※ 選手番号がA列だとすると、B1=COUNTIF($A$1:A1,A1)をB列にコピーしました。 本当はこの数字を上手く使ってランキング表を作ろうと思ったのですが、 良い案が浮かばず、今回質問させていただきました。 1位 選手番号 試合回数 2位 選手番号 試合回数 ・ ・ ・ できることなら、上記のようにランキング表を作り、 また選手の数が多いので3回以上試合を行なっている選手だけで表を作りたいのですが、 関数やVBAを使い上記の表を作成する良い案はありませんでしょうか?

  • エクセルのCOUNTIF関数について質問です。

    エクセルのCOUNTIF関数について質問です。 例えば下記のように入力されているとき、「田中」が含まれるセルを数えるとき、Sheet2のB1の列には「=COUNTIF(Sheet1!A:A,"*田中*")」と入力すればいいと思いますが、「"*田中*"」の部分を「A1」、上田の場合は「A2」とする場合はどうすれば良いでしょうか? <Sheet1>   A 1 上田夫妻 2 田中兄弟 3 田中太郎 4 田中さん 5 鈴木姉妹 <Sheet2>   A   B 1 田中 2 上田 3 鈴木

  • エクセルで2つ以上の条件から値を抽出し、任意のセルに反映させる方法

    A列にすべて異なる数値データがランダム入力されていて、B列に複数名の氏名が入力されている大きなデータがあります。(同一名の重複を含む。)B列から同一名の者を抽出した上で、A列にランダムに表示される数値のうち一番大きい数値をC列に反映させたいのですが、VBAなどで自動抽出は可能でしょうか?ご教示よろしくお願いします。 A    B    C 2 田中一郎 7 7 田中一郎 7 1 田中一郎 7 4 山本桂子 8 8 山本桂子 8 3 山本桂子 8

  • COUNTIF関数について

    タイトルの件についてご助言をお願いします。 エクセル表でいくつかシートがあって、例えば各シートの同じセル番号(例えば3枚のシートのA1のセルとして)にある”○”の数を集計したいとき、COUNTIF関数で次のように入力しました。 =COUNTIF(sheet1:sheet3!A1,"○") ところが、VALUEエラーが出て、集計してくれません。同じシート内でCOUNTIFで”○”の数を計算するのはすんなりできています。(例えば、=COUNTIF(A1:A5,"○"))この関数ではシートごとの集計はできないのでしょうか?ほかの関数を使うのでしょうか?集計する方法をご存知の方ご教示ください。

  • エクセルでこのような事ができますか?

    エクセルでマクロとか使わずに簡単に以下の作業ができる方法がありますか?      A      B 1   田中 2   山本 3   中村 4   岡田 5   鈴木      ↓   A列にずっと1000人ぐらいの名前がある。   このシートをもとに下のような1から6の番号をB列につけたシートを   作りたいのですが・・・      A      B 1   田中     1 2   田中     2 3   田中     3 4   田中     4 5   田中     5 6   田中     6 7   山本     1 8   山本     2 9   山本     3 10  山本     4 11  山本     5 12  山本     6 13  中村     1 14  中村     2      ↓    6000行まで入ることになります。

  • 複数シートから検索文字がある列を摘出したい

    初心者ですのでお力お貸し下さい。 30sheet以上あるエクセルファイルから、 特定の文字(あるいは数字)が入ったセルを検索し、その特定文字が入った一列を新規sheetへ摘出したいと考えております。 各sheetには下記の様な表が作成されており、1sheetに検索文字は0だったり複数あったりします。 A B C D 1 ◯会社 123 田中 1111 2 ▫️会社 456 佐藤 2222 3 △会社 789 加藤 3333 4 ◯会社 123 田中 4444 (表示がうまくされてなかったらすみません) 上記の様な表から、123(または田中)のみを新規sheetにまとめて表示させたいです。 またsheet毎に田中があったりなかったりしますが、全てのsheetから摘出させたいです。 新規sheetは検索結果のみを表示させて、一つの表にしたいです。 エクセルは2003使用です。 説明が下手で申し訳ありませんが、関数マクロは問いませんので分かり易く教えて頂けると助かります。 よろしくお願いします。

  • エクセルの関数 (1ヶ月の件数と金額)について

    下記のように、1年間を通しての担当者ごと取引金額の表があります。 受付日 担当者 取引金額 1/5   山本  1500円 1/6   田中  2500円  ~ 2/5   山本  2800円  ~ 12/1   山本  3000円 1ヶ月ごとに担当者件数と取引金額をだしたいのですが、 1/1~1/31までの件数とどういう関数でだしたらいいのでしょうか? 1年を通しての件数は、下記でできるのですが、 件数 =COUNTIF(B1:B100,"山本") 金額 =SUMIF(B1:B100,山本,C1:C100) すいません、よろしくお願いします。

  • 2つのシートを関連づけるには?

    エクセルで以下のような2つのシートがあったとして シート1   A  B   C 1 ID  名前 金額 2 001 山田 10,000 3 002 斉藤 15,000 4 003 田中 23,000 シート2   A    B      C 1 名前 銀行名  口座番号 2 山田 A銀行  1234567 3 田中 B銀行  9876654 4 斉藤 C銀行  4567891 これを、以下のような1つのシートにするにはどのようにしたら良いでしょうか?   A    B     C     D 1 名前 銀行名  口座番号  金額 2 山田 A銀行  1234567  10,000 3 田中 B銀行  9876654  23,000 4 斉藤 C銀行  4567891  15,000 簡単な関数や、マクロで可能でしょうか? 分かる方教えてください。

専門家に質問してみよう