- ベストアンサー
エクセルの関数等について(少し複雑です)
- エクセルの関数を使用して、特定の条件に基づいて計算を行う方法を教えてください。
- 具体的には、あるマスの数値が3か4かを判別し、それぞれの場合に異なる計算を行い、結果を合計する方法を知りたいです。
- 既存の関数を試してみたが、うまくいかなかったので、助けていただきたいです。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
こんにちは。 いくつかの計算用のセルを用いる方式でやってみました。計算用セルは邪魔なら非表示にしておけば良いかと思います。色々工夫するにも便利です。 データ:A4~D4 A5~D5に、=if(n4="",0,1) (n=A~D) A6に、=A5 B6~D6に、=A6+B5、=B6+C5、=C6+D5 A7~D7に、=n4*n7 後は、回答を出すセルに、=sum(A7:D7)を入れる。 この方法だと、5~7行目の計算式を色々と変更すれば、応用がしやすいかと思います。5~7行目を非表示にしておけば、すっきりします。 力技ですが、ご参考に。
その他の回答 (6)
- EL-SUR
- ベストアンサー率76% (83/108)
#1です。 質問を勘違いしていましたので、無視してください。
お礼
ご丁寧にありがとうございますm(_ _)m
- misatoanna
- ベストアンサー率58% (528/896)
ひとつのセルだけでの数式はわかりませんが、作業用セルを1列使って、 <データが A1:A4 にあるとした場合> B1 に =A1*COUNT($A$1:A1) と入力して B4 までコピーすると、 =SUM(B1:B4) が 答えになります。
お礼
ごめんなさい。 #3さんの内容でなんとかなりました・・・
- mshr1962
- ベストアンサー率39% (7417/18945)
他のセルを使っていいなら A2:A5に数値があるとしてB2=COUNT($A$2:$A2)としてB5までコピー 合計は=SUMPRODUCT(A2:A5,B2:B5)
お礼
質問が悪くて申し訳ありませんでした。 #3さんの回答の内容でなんとかなりました。
=A1*COUNTIF(A1,">0") +B1*COUNTIF(A1:B1,">0") +C1*COUNTIF(A1:C1,">0") +D1*COUNTIF(A1:D1,">0") 1 2 3 4 30 1 _ 3 4 19 1 0 3 4 19 と、正数に限定し、ヌルとゼロを対象外とすれば上記式でOKです。 が、かような想定外の計算は =MyFunction("a1:a4") とした方がいいのでは。
お礼
質問にて説明不足だったのですが、#3さんの回答が自分の考えに近いものでした。 ある条件1と条件2の場合で計算方法を少し変えたかったのですが、 計算用セルを用いることで容易に行う事が出来ました。
- Turbo415
- ベストアンサー率26% (2631/9774)
式としては「a×1 + b×2 + c×3 + d×4」だけを考えればいいのでしょうか?だとしたらそのまま計算させればいいです。 求めたい式はこの形だけなのでしょうか?他にあるのでしょうかその辺が書いていないとなんとも答えようがないです。 ふつうなら、ワークエリアを設定して、if関数で値がゼロだったときの条件を設定して、それぞれの値を更に計算させると言うことしか書けませんが。 具体的に計算条件は「a×1 + b×2 + c×3 + d×4」だけなのかどうかが分からないと何とも言えません。
お礼
質問が分かりにくくて申し訳ありません。 一つのマスに、#3さんの考えているような式を作りたかったのです・・・
- EL-SUR
- ベストアンサー率76% (83/108)
=SUMPRODUCT(A1:D1*{1,2,3,4})
お礼
なるほど。 計算用のセルを設ければ簡単に出来るのですね。 1つのセルに収めることしか考えていなかったので、大変参考になりました。