• ベストアンサー

特定の文字等をカウント

エクセルでのカウント方法のヒントをください | A列 班名 |  B列 日付 | ------------------------------------- | 東京    | 7/28 | ------------------------------------- | 福岡    | 7/28 | ------------------------------------- | 東京    | 入力なし | ------------------------------------- | 福岡    | 7/28 | ------------------------------------- 上記の様表があるとします A1には東京 B1には 日付入力あり A2には福岡 B2には 日付入力あり A3には東京 B3には 未入力 A4には福岡 B4には 日付入力あり 結果表示としては 東京で 日付か入力されている数は 1 福岡で 日付か入力されている数は 2 このようなカウントの仕方をしたいのですが 教えて頂けませんか

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

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

    A     B    C     D    E 1   東京   7/28       東京   1 2   福岡   7/28       福岡   2 3   東京 4   福岡   7/28 E1=SUMPRODUCT(($A$1:$A$10=D1)*($B$1:$B$10<>"")) ★下にコピー

IROIRO3
質問者

お礼

有難うございます 参考になりました 今度質問する際には 投稿をよく見て わからない内容を 質問したいと思います なかなか 探しきれずすみません なにか よい教材等参考書とうありましたら教えて下さい ここのサイトが一番の教材かもしれませんが 自力で出来ればよいのですが

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

なぜ質問が出たか (1)条件が2つある(A列、B列) 毎日のようにこの質問コーナーに出る。見てないのかな。質問者と 回答者が別れているということか。 =SUMPRODUCT関数が定番になっている。 配列数式やDCOUNT関数でも出来るが、人気がない。 その仕組みを下記に例で説明します。 エクセル2007になると換わるようだが。 (2)B列は日付 日付はセルの「値」は日付シリアル値という整数です。1900年1月1日より何日目かの数です。それを知っていれば、取り立てて、取り上げることはない。この質問は未入力を問題にしているので、まあ 関係ないが (3)未入力はセルの値はどうなっているのか。関数は未入力の場合 どう捉えるのか判らないって言うことか。 ーー 今回は件数を数えるので、C列の計数を加えるのでない。この点少し 簡単 ーー 例データ 班名&nbsp; 日付 東京 7月28日 福岡 7月28日 東京 福岡 7月28日 ーー E2に東京がある場合 =SUMPRODUCT((A2:A5=$E$2)*(B2:B5="")*1) A2:A5=$E$2とは、これはA2:A5の各行について これを判別している。 =(A2:A5=$E$2)に対して、2-5行の値は TRUE FALSE TRUE FALSE ーー =B2:B5=""に対して2-5行の値は FALSE FALSE TRUE FALSE ーー TRUEを1、FALSEを0として 同行の両者を掛ける(PROSUCT)と 0 0 1 0 これを加える(SUM)と 1になります。これで条件を満たす行数がでる。 こういう理屈です。

IROIRO3
質問者

お礼

有難うございます 参考になりました 今度質問する際には 投稿をよく見て わからない内容を 質問したいと思います なかなか 探しきれずすみません

回答No.4

次の式を入力してCtrlとShiftを同時に押しながらEnterを押下してください。 =SUM((A1:A4="東京")*(B1:B4<>0)*(1)) =SUM((A1:A4="福岡")*(B1:B4<>0)*(1)) 式を入力したセルにカウントが表示されます。 式を変更するときも必ずCtrlとShiftを押しながらEnterを 押下してください。 Enter押下時はセル位置は通常と違って下のセルに移らず そのセル位置のままで、式には前後に{}が付加されます。 また、たとえば5行A列に東京6行A列に福岡を入力しておいて "東京"の代わりにA5、"福岡"の代わりにA6を指定してもかまいません。 式そのものは、例えば5行B列、6行B列に入力します。 それと、 =SUM(($A$1:$A$4=$A5)*($B$1:$B$4<>0)*(1))と入れると 二行目の式はドラッグで作成できます。 また、最後の(1)の変わりにセルの範囲を指定するとその範囲の 対象が集計されます。 この指定はAND条件でカウントするときに便利です。

IROIRO3
質問者

お礼

回答有難うございました まだまだ 判らないことばかりですが また なにかありましたらよろしくお願いします

  • shintaro-2
  • ベストアンサー率36% (2266/6245)
回答No.2

>リアルタイムに見られる 表にはならないでしょうか countifを使えばokです 表とは別に、抽出条件を記入した表を作成しcountifをつかいます dcountaも使えます 日経PC21によくエクセルの連載がありますので、一度ご覧ください。 

参考URL:
http://pc.nikkeibp.co.jp/pc21/index.shtml
IROIRO3
質問者

お礼

回答有難うございました いろいろと やりたいことはあるのですが うまくいきません またよろしくお願いします

  • shintaro-2
  • ベストアンサー率36% (2266/6245)
回答No.1

オートフィルタを使えば簡単です。 もう1列、1という数値の入った列を追加します。 データの数だけ、入力してください。f列2から100とします そして、一番下に、subtotal(9,f2:f100)でその列の数字の合計を出しておきます。 表全体にオートフィルタをかけます。 フィルタの条件で、東京、日付ありを抽出します。  そうすると、subtotalで追加した列の表示されている"1"の数をカウントしてくれるので、目的達成です。

IROIRO3
質問者

お礼

ご回答有難うございます 回答の内容はためさせて頂きました。 もう一声 知恵をお貸し下さい 確かに上記のsubtotal(9,f2:f100)の範囲指定を変えて 機能はしたのですが ソート作業後に何かに書き留めて また ソートしなおして また書き留める作業が発生します リアルタイムに見られる 表にはならないでしょうか また 印刷も考えていますので 出来れば一覧表示が希望なのですが 難しいですか

関連するQ&A

専門家に質問してみよう