• ベストアンサー

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列のセル(数字)のみを合計したいという意図です。

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.5

C1:D3 にデータがあるなら、 =SUMPRODUCT(ISNUMBER(D1:D3)*(C1:C3)) とか。配列数式などの方法もありますよ。

diehard2
質問者

お礼

ご回答ありがとうございます。 かなり記述が簡易になりますね。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • losedog
  • ベストアンサー率66% (22/33)
回答No.4

No.3です。 質問を勘違いしました。無視してください。

全文を見る
すると、全ての回答が全文表示されます。
  • losedog
  • ベストアンサー率66% (22/33)
回答No.3

=SUM(D1:Dn)でよいのではないでしょうか。

全文を見る
すると、全ての回答が全文表示されます。
  • papiyonys
  • ベストアンサー率30% (53/174)
回答No.2

1列挿入  =D1*C1 挿入した列の最後にSUM関数で合計を出す というのはどうですか?

diehard2
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。
  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.1

> D列のセルには数字と文字が混在しており、数字の入力されているD列のセルに対応するC列のセル(数字)のみを合計したい で、何故ISBLANK? 「数字の入力されている」の判定はISNUMBERですよ。 作業列が使えるのなら、作業列をE列として TRUE=1,FLASE=0を利用して E1に=ISNUMBER(D1)*C1 下にフィル 合計値を出したいセルに =SUM(E:E)

diehard2
質問者

お礼

ご回答ありがとうございます。 確かにご指摘の通り、ISNUMBERでした。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 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) という式を、もっとスマートに短く記述したいのですが、何か良いアイディアをお持ちでしたらぜひご提案下さい。 どうぞよろしくお願いいたします。

  • IF文の使い方

    IF文の使い方について教えて下さい.一応ヘルプを見て以下のようなIF文を作ったのですが,文字列と認識されてしまっているようで全く意図したような数字が入りません. なお,IF文を入れたセルは書式で確認しても文字列ではなく,標準になっています. やりたいことは,C列の数字がゼロならB列の数字(単価)を使って,ゼロでなければC列の数字(区別単価)を使ってD列の数量をかけた合計をE列に表示(計算)させたいのですが. 下の例だとEのセルには125*1200が入ってもらいたいのです. 単価    特別単価    数量     合計 B列     C列      D列     E列 125      0      1200    IF(C5=0,=D5*B5,D5*C5)

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

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

  • 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です。

  • エクセルで複数のセルの合計をIF関数も含めて出す方法

    初歩的だと思うのですが・・ 異なった文字が入った各セルの合計を別セルにてIFを使用し、数字を出しながらなおかつ集計する方法がわかりません。  A   B    C   D 1 い   ろ 2     は   に   3 ほ       4 へ   と 5 A列に文字が入ると常に 500 B列に文字が入ると常に 200 C列に文字が入ると常に 100 として、D列にA-Cの合計(何もなければ空欄)を出したいのです。この場合だとD1=700, D2=300, D3=500...となるように。 IF(A1="","",500)+IF(B1="","",200)+IF(C1="","",100) のちゃんとした関数式を教えてください。よろしくお願いします。。

  • ISBLANK関数を二段階まで設定するには?

    初めまして。 途中までは出来ているのですが、どうしても分からない関数があった為、質問させて頂きます。 <分かっている設定方法> (1) A1のセルに、B1に入力された数値を反映させる。 (2) C1にも数値が入力されたら、A1のセルにC1の方を優先的に反映させる。 関数 =IF(ISBLANK(C1),B1,C1) ここまでは出来るんです。しかし、さらに次のような設定にしようとすると、どうしても上手く行きません。 <やり方が分からない設定方法> (3)さらにD1に数値が入力されたら、A1のセルにD1の方を優先的に反映させる。 すなわち、A1に反映される優先順位を D1>C1>B1 にする。 色々やっているのですが、どうしても、この関数が上手く書けません。 どのような関数を書けば良いのでしょうか? ちなみに、Excelは2000年バージョンを使っています。

  • IFの使い方教えてください

    E3に入力された数字がC2~C35にあればF3にE列と同じ行のD2~D35に入力されてる商品名を表示させたいです。すいませんが教えてください。

  • エクセル

    エクセル2000について質問です。IF(ISBLANK(D3),"",D3*D5)の関数を入力したセルの答えが123.3だったとするときに、124円に切り上がるようにしたいのですが、どのようにしたらいいですか?

  • IF関数での質問です。

    IF関数での質問です。 関数でやりたい事は、毎日の利益額がプラスの時は、 その額の半分を預金します。 マイナスの時には預金はしません。 ただし条件があり、当日の利益がプラスであっても、 累積利益額が過去最高値を超えていなければ預金はしません。 A列に日付、B列に当日利益額、C列には累積利益額、D列に当日の預金額が入っているとします。 自分で考えたのは、 C列のセルに=IF(D3=" ",C2+B3,C2+D3) D列のセルに=IF(B3<0," ",B3/2) これだと売上げがプラスになった時に必ず預金してしまいます。 累積利益額が過去最高値に達した時だけ当日利益の半分を預金するように、 関数式を修正して頂けないでしょうか?

  • Excel97で、If文をなんとかしたい

    IF文でなんとかなりそうなんですが、IF文を使った事がなくて。 A列   B列   C列    任意の位置のセルD 数式  文字列   数式  文字列 数式  文字列 数式  文字列 こんな表で、Bの文字列の値と、Dのセルの値が一致した時、Aの数式の値(数字)をCの列に表示させ、BとDの文字が一致しない時は、”エラー”を表示させたいんですが、どういう風にすればいいのでしょうか? IF文を使えばいいのでしょうか? どういう風に、数式を立てればいいのかわかりません。 どなたか詳しい方、教えていただけませんか?

専門家に質問してみよう