[[20190607164926]] 『if関数を使用して、セルに情報を反映させたいので』(aiko) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『if関数を使用して、セルに情報を反映させたいのですがうまくいきません。』(aiko)

お世話になります。

初歩的な質問で申し訳ありません。
if関数を使用して、セルに情報を反映させたいのですがうまくいきません。
教えて頂けますでしょうか。

下記関数を現在設定しており、現段階で「-」を入力すると「指摘事項あり」と反映されてしまいます。(本当は「検査不可」と反映させたい)

=IF(検査結果報告書P2!AC7<>"",検査結果報告書P2!AC7,IF(検査結果報告書P2!L17>2,"指摘事項あり",IF(検査結果報告書P2!L17="-","検査不可",IF(検査結果報告書P2!L17=2,"機能なし",""))))

内容としては、

「検査結果報告書P2!AC7」セルが空白の場合、対象セルに下記判定を反映させたいです。
※空白でない場合は「検査結果報告書P2!AC7」セルの文言を反映
「検査結果報告書P2!L17」セルが「2以上」の場合「指摘事項あり」
「検査結果報告書P2!L17」セルが「-」の場合「検査不可」
「検査結果報告書P2!L17」セルが「2」の場合「機能なし」
「検査結果報告書P2!L17」セルが「1」の場合「空白」

反映優先度は上に行くほど高くなります。
「検査結果報告書P2!AC7」文言>指摘事項あり>検査不可>機能なし>空白

記載情報が十分かもわからず申し訳ございませんが
教えて頂けますと幸いです。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


文字は全て数値より大きいと判定されてしまうから?
ハイフンの判定を先にすれば良いかと思いますよ。
 =IF(検査結果報告書P2!AC7<>"",検査結果報告書P2!AC7,IF(検査結果報告書P2!L17="-","検査不可",IF(検査結果報告書P2!L17>2,"指摘事項あり",IF(検査結果報告書P2!L17=2,"機能なし",""))))
(???) 2019/06/07(金) 17:27

???さま

お忙しい中本当にありがとうございます。
反映されるようになりました。
とてもとても助かりました。

(aiko) 2019/06/07(金) 17:35


度々のご質問となり申し訳ございません。

???さまに教えて頂いた【「-」判定を前に】で式を作成してみたのですが、
「指摘事項あり」より「検査不可」が反映されてしまい上手く反映されません。
(「-」判定を後ろにしてももちろんできず…)

定義を下記とした場合、どのような式にすればしっかり反映されるようになりますでしょうか?

「検査結果報告書P6!AC4」セルが空白の場合、対象セルに下記判定を反映させたいです。
※空白でない場合は「検査結果報告書P6!AC4」セルの文言を反映

 「検査結果報告書P6!L13〜L15とL19」セル内に1つでも「2以上」がある場合「指摘事項あり」 
 「検査結果報告書P6!L13〜L15とL19」セル内に1つでも「-」がある場合「検査不可」 
 「検査結果報告書P6!L13〜L15とL19」セルがに1つでも「2」がある場合「機能なし」 
 「検査結果報告書P6!L13〜L15とL19」セルが全て「1」の場合「空白」 

反映優先度は上に行くほど高くなります。

 「検査結果報告書P6!AC4」文言>指摘事項あり>検査不可>機能なし>空白

下記作成してみた式になります。

=IF(検査結果報告書P6!AC4<>"",検査結果報告書P6!AC4,IF(COUNTIF(検査結果報告書P6!L13:検査結果報告書P6!L15,"-")>0,"検査不可",IF(検査結果報告書P6!L19="-","検査不可",IF(COUNTIF(検査結果報告書P6!L13:検査結果報告書P6!L15,">2")>0,"指摘事項あり",IF(検査結果報告書P6!L19>2,"指摘事項あり",IF(COUNTIF(検査結果報告書P6!L13:検査結果報告書P6!L15,2)>0,"機能なし",IF(検査結果報告書P6!L19=2,"機能なし","")))))))

こちら申し訳ございませんが
お教えいただけますと幸いです。

(aiko) 2019/06/10(月) 16:43


 >「検査結果報告書P6!L13〜L15とL19」セル内に1つでも「2以上」がある場合「指摘事項あり」
 >「検査結果報告書P6!L13〜L15とL19」セルがに1つでも「2」がある場合「機能なし

 2の場合、いったいどっちなんだろう??
 私の解釈がおかしいのか??
(BJ) 2019/06/10(月) 17:26

 確認だけ

 >セル内に1つでも「2以上」がある場合「指摘事項あり」
 
「2以上」じゃなく「2より大きい」ですよね?

 >セルが全て「1」の場合「空白」

 1つのセルだけ「1」が入っていて、それ以外は「0」(2未満)または空白だったら
 どうなればいいんですか?

 とりあえず以上です
(笑) 2019/06/10(月) 17:28

BJさま

国語力不足で申し訳ありません。

 >「検査結果報告書P6!L13〜L15とL19」セル内に1つでも「3以上」がある場合「指摘事項あり」
 >「検査結果報告書P6!L13〜L15とL19」セルがに1つでも「2」がある場合「機能なし

が正しいです。
よろしくお願いいたします。
(aiko) 2019/06/10(月) 17:29


(笑)さま

> >セルが全て「1」の場合「空白」
>1つのセルだけ「1」が入っていて、それ以外は「0」(2未満)または空白だったらどうなればいいんですか?

空白でお願いいたします。
入力する「検査結果報告書P6!L13〜L15とL19」内に入る数字は、空白と1〜8、「-」のみになります。

お忙しいところご教授頂いているのに…説明不足で申し訳ありません。
よろしくお願いいたします。

(aiko) 2019/06/10(月) 17:34


 だったら ↓ でできませんかね?

 =IF(検査結果報告書P6!AC4<>"",検査結果報告書P6!AC4,IF(OR(検査結果報告書P6!L19>2,COUNTIF(検査結果報告書P6!L13:L15,">2")),"指摘事項あり",IF(OR(検査結果報告書P6!L19="-",COUNTIF(検査結果報告書P6!L13:L15,"-")),"検査不可",IF(OR(検査結果報告書P6!L19=2,COUNTIF(検査結果報告書P6!L13:L15,2)),"機能なし",""))))

 参考まで
(笑) 2019/06/10(月) 17:40

つまり、判定対象セルは4つあるのですね? 検査結果報告書P6シートのどこかに、以下のような式を4セル分作れば、これのMAXを調べる事で簡潔な式になるのですが…。文字色は白にして見えなくするとかして、数式を入れられませんかね?
 =IF(L13="-",2,IF(L13<3,L13-1,L13))

とりあえず、元のシートをそのままにして、力ずくで1つの式にまとめた例なぞ。 シート参照部分が多くて、見るのもうんざり…。

 =LOOKUP(MAX(IF(検査結果報告書P6!L13="-",2,IF(検査結果報告書P6!L13<3,検査結果報告書P6!L13-1,検査結果報告書P6!L13)),IF(検査結果報告書P6!L14="-",2,IF(検査結果報告書P6!L14<3,検査結果報告書P6!L14-1,検査結果報告書P6!L14)),IF(検査結果報告書P6!L15="-",2,IF(検査結果報告書P6!L15<3,検査結果報告書P6!L15-1,検査結果報告書P6!L15)),IF(検査結果報告書P6!L19="-",2,IF(検査結果報告書P6!L19<3,検査結果報告書P6!L19-1,検査結果報告書P6!L19))),{-1,1,2,3},{"","機能なし","検査不可","指摘事項あり"})

考え方としては、3以上の値はそのまま利用。ハイフンは2に置き換えて、3未満の値は-1することで、優先順位の並びの数値にします。 全部数値なので、LOOKUP関数で数値→文字列に置き換える、と。
(???) 2019/06/10(月) 17:46


 訂正

 =IF(検査結果報告書P6!AC4<>"",検査結果報告書P6!AC4,IF(OR(N(検査結果報告書P6!L19)>2,COUNTIF(検査結果報告書P6!L13:L15,">2")),"指摘事項あり",IF(OR(検査結果報告書P6!L19="-",COUNTIF(検査結果報告書P6!L13:L15,"-")),"検査不可",IF(OR(検査結果報告書P6!L19=2,COUNTIF(検査結果報告書P6!L13:L15,2)),"機能なし",""))))
                                                         ~~~~~~~~~~~~~~~~~~~~~~~
                                                        「N」は N 関数です                             
 すみません
(笑) 2019/06/10(月) 18:02

 ↓ でもいいかも

 =IF(検査結果報告書P6!AC4<>"",検査結果報告書P6!AC4,LOOKUP(MAX(TEXT(0&検査結果報告書P6!L19,"0;0;0;!2!.!5"),INDEX(TEXT(0&検査結果報告書P6!L13:L15,"0;0;0;!2!.!5")*1,0)),{0,2,2.5,3},{"","機能なし","検査不可","指摘事項あり"}))

 要検証

 0&検査結果報告書P6 というのが2か所ありますが、この先頭の「0」はゼロです(オーではない)

 参考まで
(笑) 2019/06/10(月) 20:50 数式変更21:28

 何度もすみませんが
 ↓ でもいいかも

 =IF(検査結果報告書P6!AC4<>"",検査結果報告書P6!AC4,LOOKUP(MAX(INDEX(TEXT(0&検査結果報告書P6!L13:L19,"0;0;0;!2!.!5")*{1;1;1;0;0;0;1},0)),{0,2,2.5,3},{"","機能なし","検査不可","指摘事項あり"}))

 参考まで
(笑) 2019/06/11(火) 10:24

笑さま、???さま

お忙しい中教えて頂き本当にありがとうございました。
お礼のご連絡が遅くなってしまい申し訳ございません。。。
また何かありましたら教えて頂けますと幸いです。

(aiko) 2019/06/13(木) 14:15


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.