• ベストアンサー

エクセルの関数でワイルドカードを使いたいのですが・・・

A列3行目から100行目までのセルで文字列○を含むものの合計は =COUNTIF(A3:A100,"*○*")で求めることが出来ますね。 同様にB列にも文字列○を含むセルをカウントする場合、 =COUNTIF(B3:B100,"*○*")で求められます。 では同じ行で、A列B列共に○を含むものを集計しようとして、C列に =IF(AND(A3="*○*",B3="*○*"),TRUE)とし、TRUEを合計しようとしたところすべてFALSEになってしまいました。 なぜワイルドカード(*)が使える場合と使えない場合があるのでしょうか? またどうやれば同じ行でA列B列共に○を含むものを集計できるのでしょうか?

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

  • ベストアンサー
  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.1

ワイドカードが使えるのは検索系の関数だけだと思います。 もし、 =IF(AND(A3="*○*",B3="*○*"),TRUE) の様な事をやりたいのであれば、 =IF(AND(ISNUMBER(FIND("○",A3)),ISNUMBER(FIND("○",B3))),TRUE,FALSE) としてみてはいかがでしょうか。 またFINDはワイルドカードが使えないので、ワイルドカードが使えるSEARCHに変えると、 =IF(AND(ISNUMBER(SEARCH("*○*",A3)),ISNUMBER(SEARCH("*○*",B3))),TRUE,FALSE) とも出来ますが、今回のようなワイルドカードは結果的に変わりませんので、前者のFINDで十分ですね。

shishishishi
質問者

お礼

ありがとうございました。 たすかりました!!

その他の回答 (1)

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

COUNTIF関数が「そういうものだ」と言うことでしょう。 COUNTIF関数を良く見ると、範囲指定したセルの値のそれぞれの全部について、「一律に」条件に該当するかどうか問題にしており、特定のセルの値がどうこうと見てくれる関数ではないからです。2つ以上の条件を持ち出すと、2つ以上のセルを指定せざるを得ないですから。 「2か3かどちらかであれば1と数えよ」も1つの式では表現出来ない(=countif(a1:b5,2)+countif(a1:b5,3)は別にして)ようですが。 和であれば、SUMPRODUCT関数が思いつくが、#1のご回答にある「ワイドカードが使えるのは検索系の関数だけだと」使えません。 FIND、SEARCHは、何文字目かを問題にしないで使うケースでは、そもそもワイルドカード機能を含んだ機能のようなところがありますから、ワイルドカードを問題にする必要がないと思います。 幼稚なやり方とおもいますが、A1:B5に aaa sd dss sdf fdfa fagh ga art hgh dfa でC1に=IF(ISERROR(FIND("a",A1)*FIND("a",B1)),"",1)といれてC5まで複写。 (指定した文字列が存在しないときエラーになることを使いました。) C3,C4が1になりました。あとはこれを足して件数を出すなり、SUMIFで他列セル値を足すなり出来ると思います。

shishishishi
質問者

お礼

ありがとうございました。 たすかりました!!

関連するQ&A

  • Excel 関数でcountifの複数条件

    Excelで条件にあった個数をカウントする関数はcountifですが、 複数の条件にあった個数をカウントする場合、countifの式はどうすればよいのでしょうか。 例えば A列の1行から20行で"○"が入っている個数のカウントは =countif(a1:a20,"○")ですが A列の1行から20行で"○"が入っていて、なおかつ B列の1行から20行に"1"が入っている個数のカウントを知りたいです。 =countif(a1:a20,"○")and(b1:b20,"1")ではないですよね。 よろしくご教授願います。

  • 関数がうまくいきません?

    簡単な、関数で恥ずかしいのですが フィールド行が5行目にあり6行目からデータ(データは毎日変更があります)が入力されたシートがあります。 I列からL列に条件が一致するものに○があり、一致しないものは空白となっています。   A B C D・・ I   J  K  L  6        ○ 7          ○   ○  ○ 8        ○ ○ ○ ○ 9            ○ ○ 10        ○ ○   ○  11 12        ○     ○ 13          ○ ○ 14        ○ ○ ○ ○ 15        ○   ○ ○  16            ○ 17          ○   ○ 18        ○ ○ ○ ○ 19          ○ ○ ○ 20        ○ ○ ・ ・ ・ このI列の中で空白になっているセルの合計値をB2へ J列の中で空白になっているセルの合計値をD2へ、K列の中で空白になっているセルの合計値をB4へ、L列の中で空白になっているセルの合計値をD4へ入れるために =COUNTIF(I6:I65536,"<> ○") =COUNTIF(J6:J65536,"<> ○") =COUNTIF(K6:K65536,"<> ○") =COUNTIF(L6:L65536,"<> ○") と関数を設定しましたが、うまくいきません。 また =COUNTBLANK(I6:I65536) でも試してみましたが、データの入力の無い空白セルもカウントして駄目みたいです。 どなたかご教授を!  

  • エクセルで6行おきのセルを集計する方法

    エクセルで6行おきにセルを集計する方法を調べています。 文字列と数値が混在する場合の集計方法が分からなかったので質問しました。 勤怠票の合計を出すのに使用するのですが、定時8時間勤務の場合は○、深夜八時間勤務の場合は◎、定時勤務で8時間に満たない場合は数値を入力しています。各セルには○か◎か数値のどれかが入ります。 ○と◎は8時間としてカウントします。 例えばA1セル=○、A7セル=◎、A13セル=6の入力の場合、合計に22が集計されるようにしたいです。 皆様のお知恵をお貸しください。 宜しくお願いします。

  • エクセルでこんな関数は?

    A2:B30に表1があります。 使用者がこのシートに入力するさまざまな条件により、A列がTRUEかFALSEになります。 表1ではA列がTRUEのとき、B列に文字列が表示されるようにB列に式が入れてあります。 A列がすべてTRUEになることはありません。したがってB列の文字列の表示は飛び飛びというか歯抜けのような表になっています。 このB列に表示された文字列を、表2(別シート)に上から歯抜けが無いように2行目以降に順番で表示させたいのです。 考えたのはどこかのセルに =B2&B3&B4&~略~&B30 として文字列をまとめ、(文字列の区切りがわかるように、それぞれの文字列の頭に※印をつけておく)、さらにこれを※印を目標に分割する関数はないか?ということなのですがわかりません。 あるいは他の方法でもかまいません。ただし、表1をおもてに出したくないので表1をソートするやりかたは使えません。 どうかお教えください。お願いします。

  • エクセル関数について教えてください

    お世話になります。 =countif(a10:a100,"○") A10からA100のセルで○のところをカウントする ここでセルの範囲の10 100 を たとえば B1 に ある 数字から B2 に ある数字までカウントするようにするにはどうしたらいでしょうか?式の中のA10A100を書き替えなくてもセルB1 B2の内容を参照する方法にしたいのですが。 よろしくお願いします。

  • エクセル関数で、ご教示下さい

    例として、セルA1~A10に、1.2.3.・・・・10と番号を入れて       セルB1~B10には、商品の在庫数が入力されているとします。 この時、セルC1に集計の開始番号 セルC2に集計の終了番号を入力すれば、      D1に開始番号から終了番号までのB列の合計を表示させたいのですが、      このような集計ができるD1に入れる関数はあるでしょうか。 例えば、B列の3行目から6行目までの合計をD1に表示させたい場合に      C1にA列番号の3を入力、C2には6を入力すれば、D1にB3からB6の合計を      表示してくれる、といった関数です。      開始番号、終了番号は、何番~何番までと、その都度変わります。 どなたか、よろしく、お願いいたします。         

  • excel 関数をON、OFFさせる方法

    現在、図のような表でA、B、Cの数を「COUNTIF(B2:B3,"A")」の関数でカウントしているのですが、これを例えば図の一番右のセルに何かの文字を入力した時にだけその列のA、B、Cをカウントさせる事は可能なのでしょうか? その列だけ「COUNTIF(B2:B3,"A")」の関数をONに出来る様なスイッチ役のセルが作れればと思っているのですがどなたか良い方法をお教え頂けたらと思います。 よろしくお願いします。

  • エクセル関数で、文字(漢字)列の複合条件を拾いたい

    私はエクセル初心者に毛が生えたレベルの者です。 関数は覚えておりませんが、随時調べ、少しアレンジならばできる程度です。 各支社に配布する名簿のテンプレートを作成しております。     B列(氏名欄) 10  =PHONETIC(B11) ・・・自動的にフリガナが表示されるようにPHONETIC関数を埋め込む 11  田中 一郎 12  =PHONETIC(B13) 13  (空白)     ・・・ 48  =PHONETIC(B49) 49  (空白) ┌───────────┐ |=COUNTIF(B34:B54,"*") │・・・合計セル └───────────┘ 上記のように、氏名の書かれた縦列で合計人数を集計するために、 空白はカウントせずに、個別に異なる氏名が書かれた場合に*(ワイルドカード)を当てはめ、 「=COUNTIF(B10:B49,"*")」で合計値(人数)を求めたいのですが、 しかしその名簿には、上段にふりがなが自動的に表示されるように、 「=PHONETIC(B11)」が書かれており、 この合計を求めるcountif関数ですと、そこまで集計してしまいます。 上記例ですと、田中一郎のただ1名のみの「1」という合計値を求めたいのですが、 合計結果は、すべてのPHONETIC関数も拾ってしまうため、「31」という合計値が出ます。 そこで、PHONETIC関数のセルを除いて合計を出す方法を教えて戴けないでしょうか? もちろん、規則的に2行でまとまっていますので、奇数セル合計なども手段だとは思いますが、 今後のために、 "<>PHONETIC*" などを用い、 「○○を含む」+「○○を除く」という条件が1つの関数で済めばと思っています。 氏名はすべて漢字です。 ちなみに、 =COUNTIF(B10:B49,"*")-COUNTIF(B10:B49,"<>PHONETIC*")ですと、「-29」になります。 なお、様式に則っているため、セルを増やして○や数字を記入し非表示にし、それを拾うなどはできません。 最終的にはプリントアウトをするので、並び替えなどは用いません。 宜しくお願い致します。

  • エクセルの関数についての質問です

    エクセル2010で A1のセルに「○」が入力されると +3 A2・A3・A4 のセルはどこか一箇所にでも○が入れば、1を足します。 二箇所、三箇所に入っても 1しか足しません。 その合計数をBの列に表示させるようにしたいのです。 Bの1~4のセルは結合されています。 すべてに○が入った場合は、B列の数字は 3+1=4 A1にしか○が入らなかった場合のB列の数字は3になります。 3+0=3   A   B   1 ○ 2 ○ 3     4 4 ○   ○が入れば、3を足す  一箇所にでも入れば1を足す それぞれ別の関数は出来たのですが ふたつの条件の合計を出す式が出来ません。 非表示の列を作って、そこにまずは別々に数字を出して それを合計させる手もあると思うのですが 列を増やしたりせずに、関数だけで、B列に数字が入るようにしたいのです。 うまく伝わりますでしょうか どうぞよろしくお願いします。

  • エクセル関数で・・・

    A列の1行目から45行目までに、”1”か”×”を入力するか、空白があります。 B列の1行目から45行目までに、様々な数値、若しくは空白が入ります。 この時、A列が”×”の行でB列が空白でないセルをカウントする数式を教えて下さい。   A  B 1 ×  20 2 × 3 1  30 4 ×  5 1  20 6 7 1  30 8 ×  10・・・・ こんな感じで、A列が”×”でB列が空白でないセルは『2』と導きたいのです。 分かりにくい説明で申し訳ありませんが、宜しくお願いいたします。

専門家に質問してみよう