【無料配信♪】Renta !全タテコミ作品第1話

A1からA10までAかBの文字が入力されています。

この10個のセルのなかで

Aが入力されているセルの数が7個以上の場合、B10にCと入力、
Bが入力されているセルの数が7個以上の場合、B10にDと入力、
それ以外の場合、B10にEと入力したいのです。

そこでB10に
=IF(COUNTIF(A1:A10,"A")>=7,"C",COUNTIF(A1:A10,"B")>=7,"D","E")
と入力しましたがエラーになってしまいます。
エラー表示の際、"D"の部分が黒く反転しています。
どこが間違っているでしょうか。

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

A 回答 (4件)

#1の方に補足します。



関数は

=命令文(パラメータ)

の構成を取り、パラメータがないもの(その時間を呼び出す=now()など)、一定個数のパラメータを必要とするもの(命令に対し、何個のパラメータと決まっているタイプです。IF関数も、このタイプです)、複数のパラメータを並べるもの(個数が決まっていないが、複数指定するものです。良い例がsum関数です)があります。

IF関数の場合、

=IF(条件指定、条件に適合した場合、条件に適合しない場合)

と3個のパラメータを使用します。
=IF(COUNTIF(A1:A10,"A")>=7,"C",COUNTIF(A1:A10,"B")>=7,"D","E")

とすると、
COUNTIF(A1:A10,"A")>7が条件指定で、”C"が適合するときとなりますが、COUNTIF(A1:A10,"B")>=7が適合しない場合となってしまい、そのあとの”D"と”E"の二つがパラメータとして多いことになります。黒く反転しているのは、そのあたりがおかしいという指摘です。

#1さんが記したように、

=IF(COUNTIF(A1:A10,"A")>=7,"C",IF(COUNTIF(A1:A10,"B")>=7,"D","E"))

とすることで、最初のCOUNTIF関数で指定している条件に適合しないときは、3つめの適合しない場合に記しているIF関数内の判定となり、それぞれのパラメータの数が正当な数になります。

複雑な条件を指定するときは、IF関数を7回組み込む(ネストすると言います)ことが可能で、2種のうち1種を満たすときはOR(条件1,条件2)という書き方を、共に満たすときはとするならAND(条件1,条件2)という書き方の関数を、IF関数内に組み込むことで複雑な判定をさせます。
    • good
    • 1
この回答へのお礼

大変詳しいご解説をありがとうございました。
非常によく理解できました。

お礼日時:2006/12/02 15:00

=IF(COUNTIF(A1:A10,"A")>=7,"C",IF(COUNTIF(A1:A10,"B")>=7,"D","E"))


だと思います。
    • good
    • 2
この回答へのお礼

ありがとうございました。
機会がありましたらまたよろしくお願いいたします。

お礼日時:2006/12/02 14:55

IF文は、IF(論理式,真の場合,偽の場合) の書式なので"C"以降は単式にするか、そこでまたIF文で判定をしなければなりません。

下の様にしたらできると思います。

=IF(COUNTIF(A1:A10,"A")>=7,"C",IF(COUNTIF(A1:A10,"B")>=7,"D","E"))
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/12/02 14:56

はじめまして



=IF(COUNTIF(A1:A10,"A")>=7,"C",IF(COUNTIF(A1:A10,"B")>=7,"D","E"))

こうしましょう(^^)
    • good
    • 0
この回答へのお礼

早々のご回答ありがとうございました。
うまくできました。

お礼日時:2006/12/02 14:54

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

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

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

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

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

QエクセルでIFとCOUNTIFを組み合わせるようなことは可能でしょうか

エクセルでIFとCOUNTIFを組み合わせるようなことは可能でしょうか?
現在エクセルを用いてデータの整理を行っているのですが、
今自分がやりたいことをどうすれば行えるのか分からず悩んでおります。
具体的には
A B
1 1
1 3
2 2
2 1
1 2
1 1
といった風にデータがあったときに、Aが"1"の場合のみ
Bの列をCOUNTIFを使ってCOUNTIF(B2:B7,"1"), COUNTIF(B2:B7,"2")…と求めたいと考えております。
つまりAの条件に従ってBの列をカウントするかどうかを判定したいのですが、
インターネットで調べたところIF関数ではこのような使い方ができません。
どなたかご存知の方いらっしゃいましたら教えていただけると幸いです。

Aベストアンサー

一例です。
IFとSUM関数の組み合わせでも可能です。
=SUM(IF((A2:A7=1)*(B2:B7=1),1))として入力完了時にshift+ctrl+enterを押下(配列数式といいます)
又、エクセル2007以上ならば、COUNTIFS関数で複数条件の計数が可能です。
=COUNTIFS(A2:A7,1,B2:B7,1)

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

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

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

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

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

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

宜しくお願いします。

Aベストアンサー

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

でどうでしょうか?

Q複数の文字列のいずれかが含まれていたらTRUEを返す関数について

複数の文字列のいずれかが含まれていたらTRUEを返す関数について
エクセル2003を使用しています。
B列に例えば住所が入力されていて、「東京都北区」「千代田区」「東村山市」等いくつかの文字列のいずれかが含まれていたら、A列にTRUEを返すということをしたいのですが方法がわかりません。
単純なことのような気がするのですがどうしても思いつきません。よろしくお願いいたします。

Aベストアンサー

こうかなあ。。。
A2セル
=OR(SUBSTITUTE(B2,$D$2:$D$4,"",1)<>B2)
[Ctrl]+[Shft] +[Enter] で確定、配列数式です({}で囲まれる)
下へオートフィル

D2:D4に文字列を入力しておく

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ある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?

Excelの関数について質問します。
ある範囲のせるを検索して、その隣のセルの値を取得するという関数を探しています。
なければユーザー定義で作りたいと思っています。
VLOOKUP関数では一番左端が検索されますが、
それをある範囲まで拡張して、
その右隣の値を取得できるようにしたいのです。
どうかお知恵をお貸しください。

Aベストアンサー

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場合によっては、IFをかぶせてCOUNTIFで確認した方が良いかもしれません。
 ex. =IF(COUNTIF(A1:F200,X1)=1,【上記数式】,"えらー")

ちなみに、VBAでやるならこんな感じになるかと。

動作の概要
 【検査範囲】から【検査値】を探し、
 最初にHITしたセルについて、右隣のセルの値を返す。
 ex. =Sample(X1,A1:F200)

'--------------------------↓ココカラ↓--------------------------
Function Sample(ByVal 検査値 As Variant,ByVal 検査範囲 As Range)
 For Each セル In 検査範囲
  If セル = 検査値 Then Exit For
 Next セル
 Sample = セル.Offset(0, 1)
End Function
'--------------------------↑ココマデ↑--------------------------

いずれもExcel2003で動作確認済。
以上ご参考まで。

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場...続きを読む

QIF関数を使って3つ以上のある範囲内の条件を満たす場合「A」などと入力

IF関数を使って3つ以上のある範囲内の条件を満たす場合「A」などと入力したいです。

たとえば
100以上110以下はA
110以上120以下はB
120以上ならC

=IF(F3=100<110,"A",IF(F3=110<120,"B",IF(F3=120<???,"C")))

こんな感じでしょうか?
よろしく教えてください。

Aベストアンサー

参考までに。

大きい数値あるいは小さい数値から絞り込む方法ではなく、F3が100以上110未満という限定条件の数式にする場合は(これ数式ならIF関数の順に関係されない)、以下のようにAND関数を利用します。

=IF(AND(F3>=100,F3<110),"A",IF(AND(F3>=110,F3<120),"B",IF(F3>120,"C","100未満")))

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

QExcel 指定の文字列を含むとカウントするようにしたい場合は?

ただいまエクセルと格闘中の初心者です。
関数等はオートSUMくらいしか使ったことがなく、必要時にいちいち調べているような状態です。
今回は文字列を含むとカウントするところで躓いております。

表の中から特定の文字列を含むとカウントするようにしたい時COUNTIFを使うと思うのですが、この場合正確にその言葉じゃなければカウントされませんよね?

例えば「ボールペン」「サインペン」「シャープペン」のようなペン類をまとめてカウントしたい時、ペンだけで認識してくれるようにすることは可能なのでしょうか?
COUNTIF関連で探してみているのですが、中々思うような検索ができていません(もしくはわからずに見逃しているのかも?)

エクセルにお詳しい方、アドバイスを頂ければと思います。
よろしくお願い致します。

Aベストアンサー

検索条件に「*ペン*」としてみてはいかがですか。

ちなみに上記は「ペン」がどこかにあるものを対象とする。
「*ペン」は文字列がペンで終わるものを対象にする。
「ペン*」は文字列がペンで始まるものを対象とする。

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エクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。


人気Q&Aランキング