• ベストアンサー

複数条件に該当するデータをカウントする方法

注文コード 商品名 100 みかん10個セット 100 みかん20個セット 100 みかん30個セット 101 りんご10個セット 101 みかん20個セット 102 りんご20個セット 103 いちご10個セット 103 りんご10個セット 1注文につき、1つの注文コードが発行され、1件の出荷となります。 , 上の例のとき、出荷した件数を求める関数を教えて下さい。 上の例では、出荷件数は、みかん2件、りんご3件、いちご1件となります。 オフィスのバージョンは2010です。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

A列にコード,B列に「りんご10個」のように記入されています。 1行目はタイトル行,2行目からデータです。 「商品コード」がご相談で例示されてるように「数値」で作成してあるのか,実は「文字または数字交じり文字」なのかによって数式がずいぶん変わるので,注意して下さい。 コードは間違い無く数字だけの場合: D2にみかんやりんごを記入 E2に =COUNT(0/FREQUENCY(ISNUMBER(FIND(D2,B$2:B$99))*A$2:A$99,ISNUMBER(FIND(D2,B$2:B$99))*A$2:A$99))-1 と記入,必ずコントロールキーとシフトキーを押しながらEnterで入力。 文字列混じりのコードを考慮した汎用: D2にみかんやりんごを記入 E2に =COUNT(0/FREQUENCY(MATCH(IF(ISNUMBER(FIND(D2,B$1:B$99)),A$1:A$99,A$1),A$1:A$99,0),MATCH(IF(ISNUMBER(FIND(D2,B$1:B$99)),A$1:A$99,A$1),A$1:A$99,0)))-1 と記入,必ずコントロールキーとシフトキーを押しながらEnterで入力。 各式で$2と$1が違いますが,意図して数式を作成してあるので勝手に間違えないよう注意してください。

hiroa1
質問者

お礼

返事が遅くなってすいません。 これから検証をしてみますので、検証後 回答者様のどちらかにベストアンサーします。

その他の回答 (1)

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

こんばんは! 質問の >みかん10個セット というのは1セルに表示されている場合はかなり厄介になりますので、 別セルで↓の画像のような配置になっているという前提です。 作業用の列を2列設けます。 画像では作業列1のE2セルに =IF(COUNTIFS(A$2:A2,A2,B$2:B2,B2)=1,B2,"") 作業列2のF2セルに =IF(COUNTIF(B$2:B2,B2)=1,ROW(),"") という数式を入れ両セルともこれ以上データはない!というくらいしっかり下へオートフィルでコピーしておきます。 最後に H2セルに =IFERROR(INDEX(B:B,SMALL(F:F,ROW(A1))),"") I2セルに =IF(H2="","",COUNTIF(E:E,H2)) という数式を入れ、H2・I2セルを範囲指定 → I2セルのフィルハンドルで下へcopyすると 画像のような感じになります。 ※ 作業列が目障りであれば遠く離れた列にするか、非表示にします。m(_ _)m

hiroa1
質問者

お礼

返事が遅くなってすいません。 これから検証をしてみますので、検証後 回答者様のどちらかにベストアンサーします。

関連するQ&A