• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルの関数について)

エクセルの関数でA店の個数を数える方法

このQ&Aのポイント
  • エクセルの関数を使用して、シート1のA店の個数を数える方法について説明します。
  • シート1にはA1からA200までにランダムにA店~C店の文字が入っており、B列には0~300までのランダムな数字が入っています。
  • シート2にはA1に「店名」、B2に「0~30」、C2に「31~50」、D2に「50~300」の文字を入れ、シート2のB2には、シート1のA店のB列の0~200までのセルの個数を数える関数を入れます。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

>シート2のA1には「店名」という文字。B2には 0~30  C2には 31~50  D2には50~300という文字が入っています・ の部分は 「シート2のA1には「店名」という文字。B1には 0~30  C1には 31~50  D1には50~300という文字が入っています・」 の間違いではないでしょうか?  もし、そうであれば、レイアウトを変更しなくとも良い方法も御座います。 【ExcelのバージョンがExcel2007以降の場合】  Sheet2のB2セルに次の関数を入力してから、Sheet2のB2セルをコピーして、Sheet2のB2~D4の範囲に貼り付けて下さい。 =COUNTIFS(Sheet1!$A$2:$A$200,$A2,Sheet1!$B$2:$B$200,">="&RIGHT(B$1,FIND("~",B$1)-1),Sheet1!$B$2:$B$200,"<="&REPLACE(B$1,1,FIND("~",B$1),)) 【ExcelのバージョンがExcel2007よりも前の場合】  Sheet2のB2セルに次の関数を入力してから、Sheet2のB2セルをコピーして、Sheet2のB2~D4の範囲に貼り付けて下さい。 =SUMPRODUCT((Sheet1!$A$2:$A$200=$A2)*(Sheet1!$B$2:$B$200>=RIGHT(B$1,FIND("~",B$1)-1)+0)*(Sheet1!$B$2:$B$200<=REPLACE(B$1,1,FIND("~",B$1),)+0))

この投稿のマルチメディアは削除されているためご覧いただけません。

その他の回答 (4)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 ANo.4です。  申し訳御座いません、ANo.4の回答に挙げた関数には誤りが御座いました。  正しくは以下の通りです。 【ExcelのバージョンがExcel2007以降の場合】  Sheet2のB2セルに次の関数を入力してから、Sheet2のB2セルをコピーして、Sheet2のB2~D4の範囲に貼り付けて下さい。 =COUNTIFS(Sheet1!$A$2:$A$200,$A2,Sheet1!$B$2:$B$200,">="&LEFT(B$1,FIND("~",B$1)-1),Sheet1!$B$2:$B$200,"<="&REPLACE(B$1,1,FIND("~",B$1),)) 【ExcelのバージョンがExcel2007よりも前の場合】  Sheet2のB2セルに次の関数を入力してから、Sheet2のB2セルをコピーして、Sheet2のB2~D4の範囲に貼り付けて下さい。 =SUMPRODUCT((Sheet1!$A$2:$A$200=$A2)*(Sheet1!$B$2:$B$200>=LEFT(B$1,FIND("~",B$1)-1)+0)*(Sheet1!$B$2:$B$200<=REPLACE(B$1,1,FIND("~",B$1),)+0))

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 Sheet2のレイアウトを少々変更して、Sheet2のA1セルには「店名」という文字、A2セルには「A店」、A3セルには「B店」、A4セルには「C店」、B1セルには「0」、B3セルには「30」、C1セルには「31」、C3セルには「50」、D1セルには「51」、D3セルには「300」、B2~D2には縦書きで「~」と入力して下さい。 【ExcelのバージョンがExcel2007以降の場合】  Sheet2のB4セルに次の関数を入力してから、Sheet2のB4セルをコピーして、Sheet2のB4~D6の範囲に貼り付けて下さい。 =COUNTIFS(Sheet1!$A$2:$A$200,$A4,Sheet1!$B$2:$B$200,">="&B$1,Sheet1!$B$2:$B$200,"<="&B$3) 【ExcelのバージョンがExcel2007よりも前の場合】  Sheet2のB4セルに次の関数を入力してから、Sheet2のB4セルをコピーして、Sheet2のB4~D6の範囲に貼り付けて下さい。 =SUMPRODUCT((Sheet1!$A$2:$A$200=$A4)*(Sheet1!$B$2:$B$200>=B$1)*(Sheet1!$B$2:$B$200<=B$3))

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

Sheet1のC列を使っても良いですか? また結果はピボットテーブルで得るので、Sheet2以外になるかも。 列Bの値は必ず0~300の範囲をとり、かつ入力されているとします。 1)Sheet1のセルC1に、見出し[ランク]を設定。 2)セルC2に以下の式を設定。長いので折り返してるかも?ですが、   [ から ]までを一行でコピペしてください。   [=if(and(0<=b2, b2<=30),"0~30", if(and(30<b2, b2<=50),"31~50", "50~300"))] 3)式設定できたら、セルB2を囲む黒い太枠の右下隅が■になってるのでダブルクリック。 4)セルA1をクリックして、Ctrl+Shif+Endキーを押下。 5)ピボットテーブルを起動し、行見出しに[店名]、列見出しに[ランク]、集計項目はそのまま(デフォルトは件数)で実行。

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

こんばんは! Sheet2にちょっと手を加えます。 ↓の画像のような感じで「0~30」といった文字列ではなく、数値として表を作成! その上での一例です。 Excel2007以降のバージョンではCOUNTIFS関数が使えますが、 手元のExcel2003でやってみました。 Sheet2のB3セルに =SUMPRODUCT((Sheet1!$A$2:$A$200=$A3)*(Sheet1!$B$2:$B$200>=B$1)*(Sheet1!$B$2:$B$200<=B$2)) という数式を入れ列方向・行方向にオートフィルでコピーしています。 こんな感じではどうでしょうか?m(_ _)m

関連するQ&A