• ベストアンサー

エクセル関数について

表の中での集計を取りたいのですが、どうしてもうまく行きません。    A    B 1   5   1000 2   5   1000 3   6   1200 4   7   1300 5   5 6   8   1500 7   10   2000 このような場合に、A列で、5から8までの数値範囲内で、B列に数値が入っている場合の個数をカウントしたいのです。 5になればOKとしたいのですが、また集計をした結果を書くシートと、実際に集計するデータが入っているシートは別になります。 よろしくお願いします。

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.3

No.1です。 あれ?できませんでしたか。同じレイアウトの表を作って試してみたら、こちらではちゃんと5と表示されたのですが。 配列数式ではないので、普通にEnterで入力すればいいのですが。 ひょっとしたらA列やB列の表示形式が文字列になっていて、数値でなく文字列と認識されているのかもしれません。数値がセルの中で右詰めになっていますか?もし左詰めになっているのなら、文字列として入力されてます。 それくらいしか原因は思いつかないのですが、もしそうだった場合の対処法として、 ・C列~F列を選択し、表示形式を「標準」または「数値」にしておく。 ・C1に =VALUE(A1)、D1に =VALUE(B1)と入力し、C1:D1を選択して下までコピー ・C列とD列全体を選択してコピーし、E1を選択して「編集」>「形式を選択して貼り付け」から「値」を選択して貼り付け。 ・E列とF列に入力されている数字が右詰めであることを確認し、A列~D列を選択して削除 (E列とF列が新たにA列とB列になります。直接A列に貼り付けてもいいのですが、何か失敗したときのために、最後までA列とB列は残しています) これで試してみていただけないでしょうか。ぜんぜん違ったらすみません。

その他の回答 (2)

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.2

◆こんな方法もありますよ =SUMPRODUCT((Sheet1!A1:A100={5,6,7,8})*ISNUMBER(Sheet1!B1:B100)) とか、 =SUM(INDEX((Sheet1!A1:A100={5,6,7,8})*ISNUMBER(Sheet1!B1:B100),)) ◆しかし、No1の方の回答が、一般的ですね

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

データが何行あるのかわかりませんが、仮に100行とし、Sheet1に表があるとすると、以下の式でできないでしょうか。 =SUMPRODUCT((Sheet1!$A$1:$A$100>=5)*(Sheet1!$A$1:$A$100<=8)*(Sheet1!$B$1:$B$100<>""))

fp21062
質問者

補足

実行してみましたが、0ゼロが帰ってきました。 Ctrl + Shift + Enter を同時に押して{}をつけるとかではないですよね。

関連するQ&A