- ベストアンサー
Excelで参照をして計算式を作る方法
こんにちは。 Excelの数式で困っていますので、教えて下さい。 下のようなExcelの表で、 A2~D2、A3~D3、A4~D4の【数】にはゼロを含む何らかの数字が入ってて、 【空】は空欄です。 A列 B列 C列 D列 E列 1 1 2 3 4 2 数 数 数 数 3 空 数 数 数 4 空 空 数 数 E2、E3、E4に数式を入れたいのですが、2~4行目の数字が入っているか 入っていないかを1行目の数字に対応させて、 A2、A3、A4に数字が入っていれば、A1の数字を計算に入れて、空欄であれば 計算にいれない。 E2には1+2+3+4で【10】 E3には2+3+4で【9】 E4は3+4で【7】 というふうに数字が入っている欄だけを1行目の数字を絶対参照して合計を求めたいのです。 SUMIFという関数を使って、E2にSUMIF(A2:D2,▲,$A$1:$D$4)という式を入れてみたのですが、▲には半角スペース・*(アスタリスク)・?(クエスチョンマーク)などを入れてみたのですが、エラーで計算が成り立ちません。 ▲のところに【空欄】という意味のものを入れたいのですが、それがあるのかないのかわかりません。 もしくは、この数式を使うのではなく、他の数式を利用するのでしょうか? 説明が分かりにくいかもしれませんが、よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
あ、これでいけたっぽいです。 どうでしょう? [E2]=10-SUMIF(A2:D2,"",$A$1:$D$4)
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
列数が多くなると面倒 セルの値が数かどうかのチェック(他にもチェックを入れることができる) を入れるため、下記をやってみました。 第1行目の1,2,3,4は自由に変えられます(式を変える必要なし)。 ーー 例データ 1 2 3 4 1 5 3 2 10 =1+2+3+4 2 3 5 9 =2+3+4 aa 3 2 7 =3+4 s 1 s 2 =2 4 3 =3 a b c d 0 a s 0 F列は、=sm(A2:D2) と入れる。A2:D2は対象列が増えればD2のところを増やす。そして下方向に式を複写。 ーー ユーザー関数はBVEの標準モジュールに Function SM(a) t = 0 For Each cl In a If cl <> "" And IsNumeric(cl) Then t = t + Cells(1, cl.Column) End If Next SM = t End Function をコピペしておく。
お礼
回答ありがとうございます。 初心者にはやり方が少し難しくて・・・。 せっかく回答していただいたのに、知識不足ですいません。
- mu2011
- ベストアンサー率38% (1910/4994)
次の方法は如何でしょうか。 =SUMIF(A2:D2,"<>",$A$1:$D$1)
お礼
この数式でも数式が成立しました。 【空欄】を表すのには、""のほかにも、"<>"も使えるんですね。 勉強になりました。 ありがとうございました。
- squip
- ベストアンサー率16% (2/12)
セルE2の式 =SUMPRODUCT(NOT(ISBLANK(A2:D2))*$A$1:$D$1)
お礼
回答ありがとうございます。 この数式で無事解決しました。 助かりました。
- dailylab
- ベストアンサー率51% (267/514)
やりたい事・質問の意味はよくわかってませんが SUMIF(A2:D2,▲,$A$1:$D$4)の▲のところに【空欄】という意味のものを入れたいのであれば SUMIF(A2:D2,"",$A$1:$D$4) で良かったような気がします...
お礼
早々の回答ありがとうございます。 No3の方法で無事解決しました。 ありがとうございました。
補足
E2の式ですが、E1にSUM(A1:D1)を入れておいて、 $E$1-(SUMIF(A2:D2,▲,$A$1:$D$4) という式でした。
お礼
回答ありがとうございます。 この方法と、No2の方法、どちらも数式が成り立ち、解決しました。 【空欄】というのは""で表すのですね。 勉強になりました。