- ベストアンサー
エクセル関数について
表の中での集計を取りたいのですが、どうしてもうまく行きません。 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としたいのですが、また集計をした結果を書くシートと、実際に集計するデータが入っているシートは別になります。 よろしくお願いします。
- みんなの回答 (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)
◆こんな方法もありますよ =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)
データが何行あるのかわかりませんが、仮に100行とし、Sheet1に表があるとすると、以下の式でできないでしょうか。 =SUMPRODUCT((Sheet1!$A$1:$A$100>=5)*(Sheet1!$A$1:$A$100<=8)*(Sheet1!$B$1:$B$100<>""))
補足
実行してみましたが、0ゼロが帰ってきました。 Ctrl + Shift + Enter を同時に押して{}をつけるとかではないですよね。