ISBLANK、COUNT等の数式について

このQ&Aのポイント
  • エクセルの数式ISBLANKやCOUNTを使用して、特定の条件に基づいてセルの結果を出力する方法について質問しています。
  • B1~B3に入力した数値に対して、その結果をB4~B16に出力したい時に、エクセルの数式を使用して実現する方法を知りたいという内容です。
  • 質問者は、すでに試した数式でも値が0.1未満の場合に結果が反映されない問題が発生しているため、どこが問題なのか教えてほしいとしています。
回答を見る
  • ベストアンサー

ISBLANK、COUNT等の数式について

先日類似案件で協力していただいたのですが(http://okwave.jp/qa/q7634718.html) 新たに壁にぶち当たってしまいました。 B1~B3にそれぞれ入力した数値に対し、その結果をB4~B16に出力したいのですが、 (エクセルのグラフを使わずに出力したい) 条件 (1)B1~B3が空欄時は出力しない (2)B1~B3の出力で 0~0.03はB10(0.00)の位置、0.04~0.07はB9(0.04)の位置というように0.04刻みで結果を出したい 数式は B8セルに =IF(OR(ISBLANK(D$5),ISBLANK(D$6),ISBLANK(D$7)),"",IF(OR(D$5=$C8,D$6=$C8,D$7=$C8),"○",IF(OR(D$5=$C8+0.01,D$6=$C8+0.01,D$7=$C8+0.01),"●",IF(OR(D$5=$C8+0.02,D$6=$C8+0.02,D$7=$C8+0.02),"◎",IF(OR(D$5=$C8+0.03,D$6=$C8+0.03,D$7=$C8+0.03),"△",""))))) もしくは =IF(COUNT(D$5:D$7),IF(COUNTIF(D$5:D$7,$C8),"○",IF(COUNTIF(D$5:D$7,$C8+0.01),"●",IF(COUNTIF(E$93:E$95,$C8+0.02),"◎",IF(COUNTIF(E$93:E$95,$C8+0.03),"△","")))),"") という式で試行してみましたが、 どちらの式でも 値が±0.1未満の時に結果が反映されない場合が出てきます。 0.01,0.03,0.05,0.06,0.07,0.08,0.09, -0.01,-0.03,-0.05,-0.06,-0.07,-0.08,-0.09 数式のどこがおかしいのか教えていただければと思います。 使用エクセルは2003です。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

何度もすみません。 B4セルへの入力の式は次の式で十分ですね。 =IF(OR(COUNT(B$1:B$3)<>3,$A4=""),"",IF(COUNTIF(B$1:B$3,$A4),"○",IF(COUNTIF(B$1:B$3,$A4+0.01),"●",IF(COUNTIF(B$1:B$3,$A4+0.02),"◎",IF(COUNTIF(B$1:B$3,$A4+0.03),"△","")))))

その他の回答 (6)

回答No.7

質問文の数式と添付図を見比べていますが、「数式どおりの正しい結果が表示されている」ように思えます。まず、何が問題になっているのかを、回答者に明らかにしたほうがいいです。数式よりも、「何をしたいのか」のほうが先です。次の点を全て、教えてください。 1. 添付図では、どの箇所の表示がおかしいのですか?何行目の何列目のことですか? 2. 例えば各列には、必ず3個ずつ記号が表示されるはずとか、何らかの規則があるのですか?諸条件はできるだけ詳しく、たくさん書いてください。 3. 「値が±0.1未満の時に」とおっしゃるその「値」とは、どこの値を指していますか?添付図の上から1行目のこととか? 4. 添付図の1~3行目はそれぞれ、等差数列ですか?もしそうであれば、数式がもっと簡潔になる可能性があります。 今の段階で言えることは、MOD、CHOOSE、MATCH関数などを使うと、もっと短く分かりやすい式で書けそうだということです。けれど「何をしたいのか」が分からないと、回答者がいくら一生懸命文章を書いても、徒労に終わるので…。

回答No.6

グラフプロットの原始的技法! グラフプロット位置を最適化(目盛幅の半分を上下に加味したものをプロット範囲とする)するために、縦軸の目盛を上下1行分ずつ拡張する。拡張した行には数式は入れない。(ここはダミー) 未記入のセルは「0値」として扱われる。 B5:(グラフの起点) =IF(AND(B$1<=($A4+$A5)/2,B$1>($A5+$A6)/2),"○",IF(AND(B$2<=($A4+$A5)/2,B$2>($A5+$A6)/2),"△",IF(AND(B$3<=($A4+$A5)/2,B$3>($A5+$A6)/2),"×","")))

回答No.5

ところで、これは擬似グラフ? このグラフみたいなものの物理的意味は何? 一般にグラフのデータは、このレイアウトで行けば、B列から右に「同じ行」のもの(これがデータ系列)を線で結んでいくもの、だからデータ系列毎に線種やマーカを変えて識別し易くする。 1~3行がデータとして、これを素直に同じマーカでプロットすれば良いのでは? ただし、複数のプロットが重なったときの優先度(または別のマーカ)も決める必要がある。

回答No.4

ネストはシンドイねぇ!、イライラする!! どこがどうが違うんでしょう?、多分、何かが違う!! これはB4、後は好きなだけ引っ張ってねぇ~、 =IF(OR(B$1="",B$2="",B$3=""),"",IF(OR(B$1=$A4,B$2=$A4,B$3=$A4),"○",IF(OR(B$1=$A4+0.01,B$2=$A4+0.01,B$3=$A4+0.01),"●",IF(OR(B$1=$A4+0.02,B$2=$A4+0.02,B$3=$A4+0.02),"◎",IF(OR(B$1=$A4+0.03,B$2=$A4+0.03,B$3=$A4+0.03),"△","")))))

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

回答No1です。 1行目から3行目までに一つでも数値が有れば計算させるのでしたらB4セルには次の式を入力します。 =IF(OR(COUNT(B$1:B$3)=0,$A4=""),"",IF(ROW(A1)=1,IF(COUNTIF(B$1:B$3,$A4)=1,"○",""),IF(COUNTIF(B$1:B$3,$A4),"○",IF(COUNTIF(B$1:B$3,$A4+0.01),"●",IF(COUNTIF(B$1:B$3,$A4+0.02),"◎",IF(COUNTIF(B$1:B$3,$A4+0.03),"△",""))))))

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

B4セルには次の式を入力して横方向にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(OR(COUNT(B$1:B$3)<>3,$A4=""),"",IF(ROW(A1)=1,IF(COUNTIF(B$1:B$3,$A4)=1,"○",""),IF(COUNTIF(B$1:B$3,$A4),"○",IF(COUNTIF(B$1:B$3,$A4+0.01),"●",IF(COUNTIF(B$1:B$3,$A4+0.02),"◎",IF(COUNTIF(B$1:B$3,$A4+0.03),"△",""))))))

関連するQ&A

  • Excel2003の数式設定について教えて下さい。

    Excel2003の数式設定について教えて下さい。 【C1セル】には 数式「=IF(A1="","",A1)」 【D1セル】には 数式「=IF(B1="","",B1)」 【E1セル】には 数式「=IF(AND(ISBLANK(C1),ISBLANK(D1)),"",(IF((C1+D1)=0,"---",C1+D1)))」 と設定した状態で、 【A1セル】に 数値「100」と入力し、 【B1セル】に 数値「200」と入力した場合、 【E1セル】は 「300」と出力されますが、 【A1セル】、もしくは【B1セル】を 空欄にした場合、 【E1セル】は エラーとなり、「#VALUE」と出力されてしまいます。 小生としては、【C1セル】【D1セル】の両セルとも表示上は空欄の為、 ISBLANK関数でTRUEと判定し、【E1セル】は空欄になってほしいのですが、 【C1セル】や【D1セル】には数式が設定されている為、 ISBLANK関数でTRUEと判定されずに、「IF((C1+D1)=0」の演算でエラーとなっている様です。 小生が実現したいこと、 「【C1セル】と【D1セル】の数式の実行結果が空欄以外の時のみ、  【E1セル】の数式を実行する。」 の方法をご存知の方、教えて下さい。お願い致します。

  • IF、OR、ISBLANKの関数で出力がおかしい

    B1~B3にそれぞれ入力した数値に対し、その結果をB4~B16に出力したいのですが、 (エクセルのグラフを使わずに出力したい) 条件 (1)B1~B3が空欄時は出力しない (2)B1~B3の出力で 奇数値の場合、 例0.03だったら 0.02の箇所に表示する 数式は B10セルに =IF(ISBLANK(OR(B$1,B$2,B$3)),"",IF(OR(B$1=$A10,B$2=$A10,B$3=$A10),"○",IF(OR(B$1=$A10+0.01,B$2=$A10+0.01,B$3=$A10+0.01),"●",""))) と入力しましたが、 (1)の セルに未入力時に 0.00の欄に”○”が出力されてしまいます。 数式のどこがおかしいのかが分からないので助言お願いします。 使用エクセルは2003です。

  • IF ISBLANK の繰り返しをスマートに記述したいのですが…

    =IF(ISBLANK(D2),0,C2)+IF(ISBLANK(D3),0,C3)+IF(ISBLANK(D4),0,C4)+IF(ISBLANK(D5),0,C5)+IF(ISBLANK(D6),0,C6)+IF(ISBLANK(D7),0,C7)+IF(ISBLANK(D8),0,C8)+IF(ISBLANK(D9),0,C9)+IF(ISBLANK(D10),0,C10) という式を、もっとスマートに短く記述したいのですが、何か良いアイディアをお持ちでしたらぜひご提案下さい。 どうぞよろしくお願いいたします。

  • ISBLANK(A1)=0 ???

    よろしくお願いします。 EXCEL2007を使用しています。 条件付き書式について調べていたのですが、 数式指定で、例えば、下記のような指定をしている 例がWEB上にありました。 =COUNTIF(A1,"*質*")+ISBLANK(A1)=0 「質」という文字が含まれていないセルに 色をつけるための指定方法なのですが、「+ISBLANK(A1)=0」の 意味しているところや、数式の理屈がいまいちわかりません。 COUNTIF,ISBLANKそれぞれについては判りますが、 トータルとしてわかりません。 どなたかアドバイスをいただけないでしょうか?

  • エクセルの数式簡素化

    連続したセル間(B2・C2・D2)に○△×のどれかがあればE2に○△×を表示させるには 今の私の知識では=IF(OR(B2="○",C2="○",D2="○"),"○",IF(OR(B2="△",C2="△",D2="△"),"△",IF(OR(B2="×",C2="×",D2="×"),"×",""))) のように手間のかかる数式を入れています。 もっと簡素化できる式があれば教えてください。 補足説明 B2~D2の間の3個のセルには必ず○△×のどれか一つだけの印を1箇所のみしか入れてはいけないルールが前提としております。 印だと手間がかかるが○=1、△=2、×=3など数字化にすればもっと簡単となるのでしたら そちらのほうもアドバイスおねがいします。

  • 数式が入ったセルで値がないときは詰めたい

    いつもお世話になります。 WINDOWS7 EXCELL2010です。 今回ご指導を戴きたいのは赤枠内です。 A Bは手入力します。 その結果、C D E Fの各列には下記の数式で表示されます。 例えば、 E5 E8 E9 の各列のように空白が出るので「見易く」 したいため詰めるのにどんな関数を入れればできますか。 添付画像で各列の説明です A 手入力 B 手入力 C =IF($B2="","",VLOOKUP($B2,一覧表!$A$2:$B$20,2,FALSE)) D =IF(COUNTIF($B$2:B2,B2)=1,ROW(B1),"") E =IF(K2="","",C2) F =IF(L2="","",COUNTIF($C$2:$C$19,"*"&C2&"*")) どうかよろしくお願いします。

  • エクセル2003Isblank関数を使用して作った複数のセルを合計したい

    仮に、 C3セルに以下の関数式を入れたとします。 =If(isblank(A3),’’,A3xB3 A3に入力しなければ、C3はブランクになります。 しかしさらに同様の数式を 仮にD3に =If(isblank(E3),’’,E3xF3 と入力し、 最後にC3とD3を合計するためにG3に=C3+D3 と入力すると、G3はVALUE!になってしまいます。 G3に計算通りに数字が入るようにするためには どのような数式を入力していけばよいのでしょうか。 教えてください。 お願いします。

  • EXSELで IF ISBLANK の繰り返しをスマートに記述したいのですが…

    質問がちょっと舌足らずでしたので、書き直します。 =+IF(ISBLANK(D1),0,C1)+IF(ISBLANK(D2),0,C2)+IF(ISBLANK(D3),0,C3)・・・+IF(ISBLANK(Dn),0,Cn)という式を、 もっとスマートに短く記述したいのですが、何か良いアイディアをお持ちでしたらぜひご提案下さい。 D列のセルには数字と文字が混在しており、数字の入力されているD列のセルに対応するC列のセル(数字)のみを合計したいという意図です。

  • INDEXで重複数式

    いつもお世話になります。 WIN7 EXCELL2010 です。 例えば同部屋番号(B8=E115 B11=E115)で、 C8の「飯島 清」の退所日(7/21)と C11の「中村 真一」の入所日(7/21)が重複をチェックするために下記の数式と考え採用していました。 =IF(OR(B1<>B2,B2=""),"",IF(D2>MAX(INDEX(D:D,MATCH(B2,B:B,0)):INDEX(E:E,MATCH(B2,B:B,0)+COUNTIF(B$1:B1,B2)-1)),"","重複or待機")) 作成していて気が付くと問題点の発生 =IF(OR(B1<>B2,B2=""),"", で、 B2 B3 また B5 B6 と続けて同部屋番号なら N列 に 「重複or待機」とN3 N6に それぞれ「重複or待機」と表示されうまくゆくのですが現実にはあまりありえないです。 例えば B8 B11 のように連続でなく記入されるとき =IF(OR(B1<>B2,B2=""),"", の部分または上記の数式をどのよう変更すると「N11」に 「重複or待機」が表示できるかをご指導願えませんでしょうか。 よろしくお願いします。

  • Excel 数式 数え方について

    こんにちは!エクセルの数式について教えて下さい! 同じ範囲からAとBとCとDを数える、ということをやりたいのですが COUNTIFを4つ用意するより簡単なやり方は無いでしょうか?

専門家に質問してみよう