個人事業主の方必見!確定申告のお悩み解決

こんにちは。
Excel 2007を使っています。

表中、A列に以下のような文字列があります。
DOG
house
HOUSE
dog
housing
HOUSING
dog
DOG


たとえばcountif関数でdogの個数を数える時は
=countif(A1:A100,"dog")
のようにしますが
dogとDOG両方を数えたいときにはどのように
どのようにしたらよいでしょうか?

お分かりの方お教えください。
よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (7件)

=countif(A1:A100,"dog")


の式ではdog の場合は勿論、DOGの場合でも数えられますので、dogとDOGを区別することなく数えられますね。
ご質問はお示しの式で対応できます。
それとは別にDOGとdogの数を区別して数えるのでしたら次のような式になります。

DOGの数は

=SUMPRODUCT((A1:INDIRECT("A"&MATCH("ー",A:A))="dog")*(CODE(A1:INDIRECT("A"&MATCH("ー",A:A)))=<90)*1)

この式でMATCH関数の中のーは一旦式を確定した後でひらがな入力モードでーを入力するようにします。半角の-ではいけません。

dogの数は

=SUMPRODUCT((A1:INDIRECT("A"&MATCH("ー",A:A))="dog")*(CODE(A1:INDIRECT("A"&MATCH("ー",A:A)))>90)*1)
    • good
    • 0

No.5 です。

ごめんなさい、ちょっと初心者みたいなミスしました。No.5 の 1 本目の数式に、「1*」をもう 1 つ付けてください。 2 本目はそのままで大丈夫です。

=sumproduct(1*isnumber(1*find("dog",a1:a100)))
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。

お礼日時:2012/12/09 20:47

大文字と小文字を区別しない場合については、既に皆さんから回答されているので、ベストアンサーは辞退します。



次式は一応、大文字と小文字を区別します。ご参考まで。なおワイルドカード(「*」など)が数式中に用いられていませんが、「doggie」などの「dog」を「含む」データも数えます。

=sumproduct(isnumber(1*find("dog",a1:a100)))

完全一致のみの個数とするなら、例えば次式です。なお「3」というのは、「dog」の文字数が 3 という意味です。

=sumproduct(isnumber(1*find("dog",a1:a100))*(len(a1:a100)=3))
    • good
    • 0

 もし、半角文字の「dog」や「DOG」と全角文字の「dog」や「DOG」を合わせてカウントする場合には、



=COUNTIF(A1:A100,"dog")+COUNTIF(A1:A100,"dog")

とする方が、SUMPRODUCT関数を使うよりも計算に要する負荷が少なく済むため、実用的です。

この回答への補足

ご回答ありがとうございます

SUMPRODUCTを使うより軽くていいですね

補足日時:2012/12/09 20:45
    • good
    • 0

まんま、そのまんま、、、


試してみた??

この回答への補足

ご回答ありがとうございます。
Windows では大文字小文字を区別しなかったのですね

補足日時:2012/12/09 20:44
    • good
    • 0

=COUNTIF(A1:A100,"dog")


によって、dogとDOGを両方とも数えられます。
もう一度データをよく見直し、計算してみて下さい。



#参考
ご質問で例示されている大文字と小文字ではなく、実は全角文字と半角文字を一緒にして数えたかったのなら、
=SUMPRODUCT(1*(ASC(A1:A100)="dog"))
のようにする手もあります。
この場合でも同様に大文字と小文字は区別されません。
    • good
    • 0

 Excelは大文字と小文字を区別しませんから、そのまま



=COUNTIF(A1:A100,"dog")

或いは

=COUNTIF(A1:A100,"DOG")

として下さい。
 逆に大文字と小文字を区別してカウントさせる方が難しいです。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QCOUNTIF 半角全角区別せずに探したい

B1に全角で「アアア」
B2に半角で「アアア」と入っていて
A1に=COUNTIF(B:B,ASC(B1))として下へドラッグしても、
1が返ってきます。

ASC(B1)こうすることによって、「アアア」は半角になり、B列に2つある事になるはずですが
なぜ1が返るのでしょうか?

Aベストアンサー

こんばんは!

お示しの数式では
COUNTIF関数の範囲B:B列そのまま(1バイトに変えていないもの)を
検索条件でB列の行を1バイトにして検索していますので、戻り値はそのようになるはずです。

今回の場合は
=SUMPRODUCT((ASC(B$1:B$1000)=ASC(B1))*(B$1:B$1000<>""))
のようにしてみてはどうでしょうか?

B列範囲を1バイトに変えたものが検索条件で1バイトに変えたものの個数を表示する!
という考え方です。

※ SUMPRODUCT関数は配列数式になりますので、極端にデータ量が多い場合はおススメしません。
そのため、とりあえず1000行まで対応できる数式にしています。m(_ _)m

QEXCELのcountif関数での大文字と小文字は区別できるのでしょうか

EXCELのcountif関数での大文字と小文字を別々にカウントする方法をご存知の方がいましたら教えて下さい。

入力値
セルB2 aaa
セルC2 aAa
=COUNTIF(B2:C2,"aaa")とすると 2  が返ってきます。
aaaのみカウントしてaAaはカウントしないようにしたいのです。

もしかしたらcountifの制限なのでしょうか?そうだとしたら他の方法が思いつきません。ご存知の方みえましたら、教えて下さい。お願いします。

Aベストアンサー

=SUMPRODUCT((EXACT(B2:C2,"aaa"))*1)

とすれば、計算できるでしょう。

また、下は配列数式です。
登録するとき、Ctrl + Shift + Enter とします。
 (CtrlキーとShiftキーを押した状態でEnterキーを押します)

=SUM(IF(EXACT(B2:C2,"aaa"),1,0))

QCOUNTIF 大文字小文字、全角半角もカウント

COUNTOIFで個数をだすのに大文字小文字、全角半角が混じっているので
両方カウントしてほしい。

=COUNTIF(sheet1!$B$3:$B100,$A1)
でカウントしています。

A1 あ1

B3 あ1
B4 あ1

Aベストアンサー

kaoru75さん
こんにちは。

両方共半角または全角にして比較すればOKです。
ただ、別のセルを使用して半角または全角にするのは面倒なので、SUMPRODUCT関数を使用し
半角または全角に変換し、等しい件数をカウントすればよいかと存じます。
 
以下は両方共に全角に変換し比較しています。
お試し下さい。
  
=SUMPRODUCT((JIS($A1)=JIS(Sheet1!$B$3:$B100))*1)

QEXCEL検索関数の大文字小文字の区別

32844で質問したものですが、COUNTIFの検索では、大文字と小文字の区別は出来ないようですね。
例えば、BBとBrとは同じとみなされています。V(H)LOOKUPもそうですね。
これらを区別する方法は無いのでしょうか。

Aベストアンサー

>これらを区別する方法は無いのでしょうか。

簡易的な方法ですが、、、

EXCELの検索と置換では、大文字・小文字や全角・半角をそれぞれ区別することが出来ます。この機能を利用して、区別できる文字列に置換すれば良いと思います。

例えば、BBとBbを区別したいのであれば、BbをBCなどCOUNTIF関数で区別できる形に置換します。

データを変えてしまうわけですから、ダメですかね、、、

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

QEXCEL95 VLOOKUP関数で半角と全角

パソコン名人のみなさま、いつもお世話になっています。

VLOOKUP関数で、検索値と範囲内の値に全角と半角の違いがあると、拾ってくれませんが、全角半角の違いは無視して拾ってくれるようにすることはできますでしょうか?

検索の型のTRUEの使い方がわからないのですが(FALSEしか使ったことがない)、それと何か関係あるでしょうか。
(関数式作成画面で、「検索の型には<検索値>と完全に一致するだけを検索するか、その近似値を含めて検索するかを論理値で指定します」とあるが、その言葉の意味すらわからない)

宜しくお願いいたします。

Aベストアンサー

半角・全角を同一視して、C1の値をA1~A4と照合してB列の値を持ってくる例です。

 =VLOOKUP(JIS(C1),JIS($A$1:$B$4),2,FALSE) または
 =VLOOKUP(ASC(C1),ASC($A$1:$B$4),2,FALSE)

配列数式なので、登録する時に、CtrlキーとShiftキーを押しながらEnterとします。
ただし、上の2式はB列の値を、全角または半角にしてしまいます。抽出する列が全角のみ、または半角のみなら上式で大丈夫でしょう。

これを回避した式が下です。VlookUpのかわりに、MatchとIndexを使っています。これも配列数式です。
CtrlキーとShiftキーを押しながらEnterとします。

 =INDEX($B$1:$B$4,MATCH(JIS(C1),JIS($A$1:$A$4),FALSE))

B列はそのまま抽出されます。
3式とも計算用の別の列を使わない前提で作っています。ご参考に。

Qエクセルで条件に一致したセルの隣のセルを取得したい

下のような「得点」という名前のシートがあります。
(「田中」のセルがA1です。)

 [ 田中 ][ 10 ][ 200 ]
 [ 山田 ][ 21 ][ 150 ]
 [ 佐藤 ][ 76 ][ 250 ]
 [ 鈴木 ][ 53 ][ 350 ]

別のシートのA1セルに、「佐藤」と入力すると、

 [ 佐藤 ]

「得点」シートから「佐藤」の列を見つけて、B1、C1に

 [ 佐藤 ][ 76 ][ 250 ]

のように表示させたいのですが、B1、C1にはどのような式を書けば良いのでしょうか。
「得点」シートでは氏名が重複する事はありません。
IF文を使うと思うのですが、いまいち良く分かりませんでした。

よろしくおねがい致します。

Aベストアンサー

こんにちは!
VLOOKUP関数で対応できます。
IF関数と併用すればエラー処理が可能です。

Excel2007以降のバージョンであれば
B1セルに
=IFERROR(VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0),"")
としてC1セルまでオートフィルでコピー!
そのまま下へコピーすると行が2行目以降でも対応できます。

Excel2003までの場合は
=IF($A1="","",VLOOKUP($A1,得点!$A:$C,COLUMN(B1),0))

としてみてください、m(_ _)m

Qvlookup関数で検索値を含む文字列を検索する方法

vlookup関数で例えば E1のセルに=vlookup(D1,A:C,3,false)とした場合、D1が佐藤であれば、A列に「佐藤」がある場合には当然、「佐藤」がある行の3列目の値が返されますが、「佐藤」はなく「佐藤A」や「A佐藤」がある場合にもこれらがある行の値を返して欲しいのですが、いい方法はありませんでしょうか。*を使ってできると思ったのですがうまくいきません。上記例で、=vlookup("*佐藤*",A:C,3,false)とすればできますが、*佐藤*の部分はD1の引用を利用したいのです。
 よろしくお願いします。

Aベストアンサー

=VLOOKUP("*"&D1&"*",A:C,3,FALSE)

Qエクセルの大文字・小文字別のカウント

エクセルでCountifを使って、A・a・B・bというように、大文字と小文字を区別してカウントしようと思うのですが、いい方法はないでしょうか?

Aベストアンサー

例データA1:A5
Aa
AA
Aa
AB
Aa
上記以外のどこかのセルに
=SUM(IF(EXACT(A1:A5,"Aa"),1,0))
と入れてSHIFT+CTRL+ENTERを同時押し。配列数式。
結果

=SUMPRODUCT(EXACT(A1:A5,"Aa")*1)
でも同じになります。


人気Q&Aランキング