• 締切済み

エクセルの関数について

エクセルの関数について質問です。 A1-A20にランダムに花名 B1-B20に○か空欄があります。 チューリップ   ○ バラ        ○ カーネーション  ○ バラ バラ カーネーション チューリップ チューリップ カーネーション チューリップ A1-A10 B1-B10全体で、 B列の「○」がある場所で A1-A10の花名が1種類のみ時は、「真」 A1-A10の花名が2種類以上の時は、「偽」 とするには、どうしたら良いのでしょうか? ちなみに、上の表だと「偽」です。 お願い致します。

みんなの回答

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.6

B列の「○」がある場所でA1-A10の花名の種類はたとえば以下の数式で表示できます。 =COUNT(INDEX(1/INDEX((MATCH(A1:A10&B1:B10,A1:A10&B1:B10,)=ROW(1:10))*(B1:B10="○"),),)) "真"や"偽"を返したいなら、上記の数式を使って適宜IF関数で条件分けをしてください。 =IF(上記の式=1,"真","偽")

noname#204879
noname#204879
回答No.5

添付図参照 C1: =IF(B1="○",A1,"") E1: {=IF(SUM(IF(B1:B10="○",1/COUNTIF(C1:C10,C1:C10),""))=1,"真","偽")}   (配列数式)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! B列は「○」か空白のどちらかだとします。 C1セルに =IF(B1="","",IF(COUNTIF($A$1:$A$10,A1)=1,"真","偽")) としてオートフィルで下へコピーではどうでしょうか?m(_ _)m

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 ANo.1です。  先程の回答はExcelのバージョンがExcel2007以降の場合にしか使えません。  もし、Excel2007よりも前のバージョンのExcelで使う場合には、次の様な式となります。 B列に「○」が1つも無い場合には、「真」とする場合 =IF(COUNTIF($B$1:$B$10,"○"),SUMPRODUCT(($B$1:$B$10="○")*($A$1:$A$10<>INDEX($A$1:$A$10,MATCH("○",$B$1:$B$10,0))))=0,TRUE) B列に「○」が1つも無い場合には、「偽」とする場合 =IF(COUNTIF($B$1:$B$10,"○"),SUMPRODUCT(($B$1:$B$10="○")*($A$1:$A$10<>INDEX($A$1:$A$10,MATCH("○",$B$1:$B$10,0))))=0,FALSE)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

幾つか手口がありますが、例えば =IF(COUNT(1/FREQUENCY(IF(B1:B10="○",MATCH(A1:A10,A1:A10,0)),IF(B1:B10="○",MATCH(A1:A10,A1:A10,0))))=1,"1種類","偽") と記入し、コントロールキーとシフトキーを押しながらEnterで入力します。

riri-rara
質問者

お礼

ありがとうございまます。 試してみます。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 B列に「○」が1つも無い場合には、「真」と「偽」のどちらにすべきなのかが説明されていません。  もし、B列に「○」が1つも無い場合には、「真」とするのでしたら、 =OR(COUNTIF($B$1:$B$10,"○")=0,COUNTIFS($A$1:$A$10,"<>"&INDEX($A$1:$A$10,MATCH("○",$B$1:$B$10,0)),$B$1:$B$10,"○")=0) 「偽」とするのでしたら、 =OR(COUNTIF($B$1:$B$10,"○")=0,COUNTIFS($A$1:$A$10,"<>"&INDEX($A$1:$A$10,MATCH("○",$B$1:$B$10,0)),$B$1:$B$10,"○")=0) となります。

riri-rara
質問者

お礼

ありがとうございます。 真とする場合砥ぎとする場合があるので、ありがたいです。 試してみます。 バーションはXPです。

関連するQ&A

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

    エクセルの関数についての質問です。エクセルは2003です。 A列とB列とC列には数字(金額)が入っております。 A列とB列を比較して一致するものには○(マル) 不一致には×(バツ)を付けるにはIF関数で倫理式にA=B 真の場合に○ 偽の場合に× と設定すれば出来ると思うのですが A列とB列とC列の3つの列を比較してD列に○×を付けたいのですが方法が 分かりません。A列とB列が同じでもC列がAとBと違うなら×というように 3つの列が同じ場合のみ○ どれかひとつの列で違うなら×と表示させたい のです。素人ですので伝えにくいですが宜しくお願い致します。

  • エクセル関数の質問。

    エクセル関数の質問です。 画像添付します。 画像のように、A・B列に「0」「1」「2」「空欄」がランダムに並んでいます。 C列に判定を表示します。 判定基準は、A・B列が同じ=○        〃  異なる=×        〃  空欄有り=△です。 この場合、IF関数とCOUNTIF関数で式を作ったのですがエラーが出てしまいます。 お分かりの方がいましたら教えて下さい。 宜しくお願い致します。

  • エクセルの関数

    数種類の関数を組み合わせて作ったのですが、ANDでもORでも答えが同じになってしまいます。 どこに間違いがあるのか、教えて頂けると助かります。 =IF(ISERROR(AND(FIND("A",A5,1),FIND("B",A5,1)=FALSE)),"偽","真") =IF(ISERROR(OR(FIND("A",A5,1),FIND("B",A5,1)=FALSE)),"偽","真") 上記式はAND・OR以外はすべて同じのつもりです。 AND関数の場合の答えは、期待通りです。 OR関数の答えとして、A5のセルに『A又Bが含まれている』にも拘わらず、『偽』と表示されます。 (ORのそれ以外の答えは期待通りです。) OR関数で、『A5のセルに、A又はBがひと文字でも含まれている場合』を、『真』とするにはどうすればよいでしょうか? 宜しくお願いいたします。

  • エクセル関数 ISNUMBERについて

    こんにちは。 ISNUMBER と IF関数を用いてセルに"真"か "偽"を表示させたいのですが・・・ 例えば、セルに特定の数値が入力されれば“真”を表示する。ということです。 どうやら、数字の「1」は「10」「12」なども 「1」が含まれていると認識するようで、困っています。 また、他のセルの関数を参照していることからどのような式を組めばよいのか分かりません。 詳しく説明すると以下のようになります。 (( ))はセルに入力されている関数です。        A         B         C 1    2009/01/20   2      1    (( =MONTH(A1) )) 3     4、10月    (( 文字列  )) 4     真    (( = IF(ISNUMBER(SEARCH(A1,A3)),"真", "偽") )) A1 シリアル値で入力された日付 A2 その日付より“月”だけ取り出して表示 A3 真か偽かを判断する為の基本となるデータを入力 A4  ISNUMBER関数 → A2の数値がA3に含まれていれば“真”をそうでないらな“偽”を表示する。 上記のように 1 は 10月 とは異なるので“偽”としたいのですが、10月の 10 の 1 を読み取ってしまうようで “真”と なってしまいます。 11月、12月 等も 1、2、と 読み取ってしまうようで・・・・ 1は 1月のみ“真”と表示。 2は2月のみ“真”と表示。というようにするにはどうしたら良いのでしょうか? 宜しくお願いします。

  • IF関数に関して教えてください。

    はじめまして IF関数に関しまして、論理式の箇所に文字が入っているかどうかで 真であるか偽であるか求める場合どのようにしたい良いのでしょうか。 たとえば、、、 論理式= A1に文字が入っている 真の場合=A1 偽の場合=”” 作業したい内容としましては、  A1に文字が入っている → A1の文字をB1に反映させる A1に文字が入っていない→ B1は空欄にする。 また、何か他に適切な関数がございましたら 教えていただければ幸いです。 よろしくお願いいたします。

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

    エクセルでの関数について質問します。 初めに A列を参照して0より大きければB列に○、0以下であればB列に● 次にC列に ○の率を表示させようと思い COUNTIF(B:B,"○")/COUNTA(B:B)と入力したのですが、B列に関数が入力されているため空欄とは認識してくれないので分母が大きくなってしまいます。 何か良い方法を教えてください。 よろしくお願いします。

  • エクセルの関数について教えて下さい!

    どなたかエクセル関数が詳しい方ご伝授下さい!XP使用です。パソコン初心者の為 説明不足でしたらごめんなさい! シート1               A    B    C    D    E    ┌─┬─―┬─―┬─―┬─―┐ 1│ 1│佐藤│バラ │赤 │50本│  ├─┼─―┼─―┼─―┼─―┤ 2│ 2│山下│キク │黄 │80本│  ├─┼─―┼─―┼─―┼─―┤ 3│ 3│田中│ユリ │白 │30本│  ├─┼─―┼─―┼─―┼─―┤ シート2   A     B    C    D     E     F  ┌─―┬─―┬─―┬─―┬─―┬─―┐ 1│番号│1  │名前│佐藤│花名│バラ│  ├─―┼─―┼─―┼─―┼─―┼─―┤ 2│色 │ 赤 │本数│50本│     │    │  ├─―┼─―┼─―┼─―┼─―┼─―┤ シート3   A     B    C    D    E    F  ┌─―┬─―┬─―┬─―┬─―┬─―┐ 1│番号│ ☆ │名前 │    │花名 │   │  ├─―┼─―┼─―┼─―┼─―┼─―┤ 2│色  │     │本数 │   │   │   │  ├─―┼─―┼─―┼─―┼─―┼─―┤ シート1の表に列ごとに項目をいれていきます。 それをシート2のような形にしたいのです。 この場合シート3の☆の部分に番号(シート1のA列)を入れたら 自動で名前・色・本数 がでるようなことは可能でしょうか? (☆に3を入れた場合 田中・ユリ・白・30本 が自動で出るようにしたい) わかりにくいかと思いますが、ご存知の方いらっしゃいました教えて下さい。宜しくお願い致します。

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

    エクセルの関数についての質問です。 画像のように横に1、2、3…(100くらいまで続きます)縦にA、B、Cの行があります(端が切れちゃってますが、A2にA、A3にB、A4にCです) B2から横の列にはそれぞれ☆や○等いろいろな記号が入ります。 そしてこの記号には特定の値が決められています。☆=10、○=5、△=3 B3から横には、B2の記号にそった数字が入ります。(10やら5等) そこまではIF関数で式を作ったのですが、ここからが問題でして… B2から横に1から100まで、記号(B3から横に数字)を入力していった時のB3列の合計が仮に212とします。 合計した値が200を越えてしまった場合、B4からの列に数字を入力するようにしたいのです。 (200ギリギリ前くらいまではB3の列で、それを越える時からB4の列に入力します。その際、B3列に入る数字は消えます) なおかつ可能であれば、このB4からの列に入るのはランダムにできるといいのですが…(画像では○の数字を下ろしていますが、☆の数字をおろしても良いし、△の数字をおろしても良い) ●計算式によって入力された数字(B3列)を特定の数字を越えた場合、別の枠(B4列)に移す関数はありますでしょうか?? ●また、それをランダム(関数)で選ぶことは可能でしょうか?? よろしくお願いします。

  • エクセルの関数を教えて下さい

        A     B 1 #N/A  東京 2   1  3   2   4 #N/A  東京 A列に上記のように表示されています。 B列に関数を入れて A列が#N/Aの時は【東京】 A列が#N/A以外の時は空欄 としたいのですが、良い関数はないでしょうか?

  • エクセルの関数について

    A列に1,2,3・・・と回数があり、B列に一桁の数字(0~9)がランダムにあり、C列(C1)には『=IF(B1=1,"○","")』とあり、C2以降オートフィルでコピーされています。 B列の数値が『1』の時にだけC列に『○』が入りますが、D列に『C列の○と○の間隔』を数字で表示したいのですが、『=IF(B10=1,COUNTBLANK(C2:C9)+1,"")』としても、オートフィルで全てのD列にコピーしても参照セル範囲がランダムなので上手く行きません。 ○印が出現したら直前回の○印からの出現間隔を関数で自動表示したいのですが、関数が分かりません。あるいは関数の組合せ方法が思い浮かびません。 分かりやすく言うと、例えばナンバーズなどのある桁の0から9までの数字のうち、任意の数字が出現するたびにその横の列に○印を付け、さらにその横の列に出現した間隔を自動で表示できる関数が知りたいのです。 言葉で上手く表現できませんが、分かる方教えて下さい。お願いします。

専門家に質問してみよう