こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

以下の条件での式を教えてください

たとえばJ63のセルに以下の関数式が入っているとします。
=IF((J47>0)*J46*(J45>0),J47,"")
このセルはこの計算式の回答が入りますが、新たに行を挿入しJ53に入力した数値をこのJ63に反映するようにたいのです(行が増えますのでJ64となります)。その式を教えてください。
なお、J53に入る数値は0か正数です。

なお、 =IF((J47>0)*J46*(J45>0),J47,"")
の式の詳細ついては、以下の質問先となります。
https://okwave.jp/qa/q9488151.html

投稿日時 - 2018-06-05 16:55:59

QNo.9505396

困ってます

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

ANo.2、4です。

> ただ「入力した数式にエラーがありました。次の方法があります」というメッセージがでます。「はい」をクリックしましたが、気にしなくてもよいのでしょうか?

失礼しました、Excelが勝手に直してくれましたが正しくはこうですね
=IF((J47>0)*J46*(J45>0),J47+(J53=>0)*J53,"")
                ↓
=IF((J47>0)*J46*(J45>0),J47+(J53>=0)*J53,"")

内容は同じですが「以上」の不等号の位置がExcelの作法にのっとっていませんでした。

--

> この条件にJ21、J27、J33、J39のセルを追加したいのです。
> J45と同様、これらが0か正数の場合となる式を教えてください。よろしくお願いいたします。

J45は正数が条件です、正数が条件で良いならIF文の論理式の部分に *(J21>0) と言う感じで追加します。0か正数が条件なら *(J21>=0) です。

投稿日時 - 2018-06-06 16:45:49

補足

J21の場合だけですが、

=IF((J47>0)*J46*(J45>0)*(J21>0),J47+(J53>=0)*J53,"")

で試しましたが…空白状態になったまま結果がでませんでした…
どこがおかしいのでしょうか?

投稿日時 - 2018-06-07 09:22:33

ANo.5

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(7)

ANo.7

> はい。正数か0です。

間違っているのはココですね。
条件が、正数か0の時は (J21>=0)
正数のみのときは  (J21>0)
です。

J47、J45、J21のいずれかが0だったのではありませんか。

投稿日時 - 2018-06-07 18:20:37

お礼

> J47、J45、J21のいずれかが0だったのではありませんか。

J46やJ21他がある場合は0か正数ということです。

目的にかないました。ありがとうございます。

投稿日時 - 2018-06-09 15:49:13

ANo.6

> =IF((J47>0)*J46*(J45>0)*(J21>0),J47+(J53>=0)*J53,"")
>
> で試しましたが…空白状態になったまま結果がでませんでした…

式はおかしく無いと思います。
・J47、J45、J21は正数ですか
・J46は0以外の値ですか

それぞれのセルの値を確認して見てください。

投稿日時 - 2018-06-07 14:03:23

補足

やはり空白です。値も見直しました。

>J47、J45、J21は正数ですか
>J46は0以外の値ですか

はい。正数か0です。
ただしJ45、J21、J27、J33、J39の範疇で、いずれか0のときは必ず一つが正数になります。
それでも元の式に*(J21>=0)を入れるだけだと思うので理論的には正しいと思いますが…

投稿日時 - 2018-06-07 17:33:00

ANo.4

ANo.2です。

恐らく、あなたが求めている式は↓これになります。お試しください。
=IF((J47>0)*J46*(J45>0),J47+(J53=>0)*J53,"")



「表示」と「加算」では意味が違います。
次回はもう少し正しく、論理的な説明をお願いします。

投稿日時 - 2018-06-06 00:21:34

補足

求めてることができました。ありがとうございます。
ただ「入力した数式にエラーがありました。次の方法があります」というメッセージがでます。「はい」をクリックしましたが、気にしなくてもよいのでしょうか?

もうひとつだけよいでしょうか?この式の応用的なものなのです。
この条件にJ21、J27、J33、J39のセルを追加したいのです。
J45と同様、これらが0か正数の場合となる式を教えてください。よろしくお願いいたします。

投稿日時 - 2018-06-06 13:30:37

ANo.3

>新たに行を挿入しJ53に入力した数値をこのJ63に反映するようにたい
>なお、J53に入る数値は0か正数です。
「反映する」とは提示の数式にJ53の値を加算するのですか?
IF関数の入れ子構造で対応できると思います。
=IF(J53,J47+J53,IF((J47>0)*J46*(J45>0),J47,""))

投稿日時 - 2018-06-05 22:02:40

ANo.2

↓の式の意味は
=IF((J47>0)*J46*(J45>0),J47,"")

条件:J47とJ45が0より大きく、J46が0以外
 この条件を満たすときはJ47の値を表示
 条件を満たさない時は空白を表示

と、言う意味です。
この式にJ53の値をどう絡ませたいのですか?

「J53に入力した数値をこのJ63に反映するようにたいのです」この文をそのまま活かすなら単に=J53 です。

投稿日時 - 2018-06-05 18:01:57

補足

条件を仕切り直ししますと

J47とJ45が0より大きく、J46が0以外
 この条件を満たすときはJ47の値を表示
 条件を満たさない時は空白を表示
かつ、J53が0または正数の場合にはJ53を表示

>この式にJ53の値をどう絡ませたいのですか?

上の条件はそのままでよいのです。J53に0か正数が入れば、この条件を満たすまたは満たさないと同時に、加算させたいのです。

たとえば第一条件である
「J47とJ45が0より大きく、J46が0以外」
の場合の答えが4,000とします。➡J64に反映

第二条件である
「J53の数値が0か正数」
の場合の答えが1,000とします。➡J64に反映

第一と第二の合計は5,000です、➡J64に反映

ということです。

投稿日時 - 2018-06-05 18:50:02

ANo.1

「J53に入力した数値をこのJ63に反映する」というのはどういう意味か分からない。どのように反映すればよいのですか?

投稿日時 - 2018-06-05 17:11:22

補足

=IF((J47>0)*J46*(J45>0),J47,"")

はJ47、J46、J45を対象としてますよね。
それに加えてJ64も対象としたいのです。
J64に入力した数値は加算対象となる。それが「反映する」ということです。

投稿日時 - 2018-06-05 17:45:53