[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複雑なIF関数』(桜)
初めまして。
IF関数で10種類の条件分岐したいのですが、一応結果は導けたようですが、
複雑すぎてもっと簡単に出来ないものかと調べていますが、いい案にたどり着けません。
何かアドバイスありましたらお願いします。
A列 B列 C列 D列 E列 条件1 条件2 条件3 条件4 分類 〇 1 あ △ 〇 2 い 3 う
※A〜D列に、上記分類 or 空欄(未入力)のいずれかが入るリストがあります。(500行位あり)
E列に、下記条件に沿って、ステータス分類を1列に表示したい。
E列に表示したい条件
分類1→条件1: 〇、条件2:1、条件4:△
分類2→条件1: 〇、条件2:2
分類3→条件1: 〇、条件2:2、条件4:△
分類4→条件1: 〇、条件2:3
分類5→条件1: 〇、条件3:い
分類6→条件1: 〇、条件3:う
分類7→条件1: 〇、条件2:2、条件3:い
分類8→条件1: 〇、条件2:2、条件3:い、条件4:△
分類9→条件1: 〇、条件2:3、条件3:い
分類10→条件1: 〇、条件2:3、条件3:う
考えた式は、下記です。
途中まで同じ条件のものはより複雑な条件をIF文のより先にすることで答えは合うようですが、このような方法でやるしかないでしょうか?
=IF(AND(A3="〇",B3=1,D3="△"),"分類1",IF(AND(A3="〇",B3=2,C3="い",D3="△"),"分類8",IF(AND(A3="〇",B3=2,D3="△"),"分類3",IF(AND(A3="〇",B3=2,C3="い"),"分類7",IF(AND(A3="〇",B3=2),"分類2",IF(AND(A3="〇",B3=3,C3="い"),"分類9",IF(AND(A3="〇",B3=3,C3="う"),"分類10",IF(AND(A3="〇",B3=3),"分類4",IF(AND(A3="〇",C3="い"),"分類5",IF(AND(A3="〇",C3="う"),"分類6"))))))))))
あと、この式だと条件以外の時は、Falseとなってしまいます。
偽の時を指定していないからなのですが。。
IF(AND(A3="〇",B3=1,D3="△"),"分類1","" のように最後に"",をそれぞれに付けたら、この関数に対して多すぎる引数のエラーメッセージが出てしまいます。
これもできれば解決したいです。
以上、2点、何か良い方法ありましたらお願いいたします。
< 使用 Excel:Microsoft365、使用 OS:Windows10 >
L2 =TEXTJOIN(",",FALSE,H2:K2) 下コピー E2 =XLOOKUP(TEXTJOIN(",",FALSE,A2:D2),$L$2:$L$11,$G$2:$G$11,"") 下コピー
|[A] |[B] |[C] |[D] |[E] |[F]|[G] |[H] |[I] |[J] |[K] |[L] [1] |条件1|条件2|条件3|条件4|分類 | | |条件1|条件2|条件3|条件4|作業列 [2] |〇 | 1|あ |△ | | |分類1 |〇 | 1| |△ |〇,1,,△ [3] |〇 | 2|い | |分類7| |分類2 |〇 | 2| | |〇,2,, [4] | | 3|う | | | |分類3 |〇 | 2| |△ |〇,2,,△ [5] | | | | | | |分類4 |〇 | 3| | |〇,3,, [6] | | | | | | |分類5 |〇 | |い | |〇,,い, [7] | | | | | | |分類6 |〇 | |う | |〇,,う, [8] | | | | | | |分類7 |〇 | 2|い | |〇,2,い, [9] | | | | | | |分類8 |〇 | 2|い |△ |〇,2,い,△ [10]| | | | | | |分類9 |〇 | 3|い | |〇,3,い, [11]| | | | | | |分類10|〇 | 3|う | |〇,3,う, (フォーキー) 2023/04/02(日) 19:19:04
う〜ん...スマートかどうかはわかりませんが^^;
E2の式=SWITCH(CONCAT(A2:D2),"〇1あ△","分類1","〇2","分類2","〇2△","分類3","〇3","分類4","〇い","分類5","〇う","分類6","〇2い","分類7","〇2い△","分類8","〇3い","分類9","〇3う","分類10")
下まで、コピー これであってるかどうかは確認してくださいw (あみな) 2023/04/02(日) 19:36:47
=IF(AND(A3="〇",B3=1,D3="△"), "分類1", IF(AND(A3="〇",B3=2,C3="い",D3="△"), "分類8", IF(AND(A3="〇",B3=2,D3="△"), "分類3", IF(AND(A3="〇",B3=2,C3="い"), "分類7", IF(AND(A3="〇",B3=2), "分類2", IF(AND(A3="〇",B3=3,C3="い"), "分類9", IF(AND(A3="〇",B3=3,C3="う"), "分類10", IF(AND(A3="〇",B3=3), "分類4", IF(AND(A3="〇",C3="い"), "分類5", IF(AND(A3="〇",C3="う"), "分類6" ※「””」を入れるのはここだけ ) ) ) ) ) ) ) ) ) )
=IF(AND(A3="〇",B3=1,D3="△"),"分類1", IF(AND(A3="〇",B3=2,C3="い",D3="△"),"分類8", ←一つ上の行のIFの第3引数(Falseの場合) IF(AND(A3="〇",B3=2,D3="△"),"分類3", ←一つ上の行のIFの第3引数(Falseの場合) IF(AND(A3="〇",B3=2,C3="い"),"分類7", ←一つ上の行のIFの第3引数(Falseの場合) IF(AND(A3="〇",B3=2),"分類2", ←一つ上の行のIFの第3引数(Falseの場合) IF(AND(A3="〇",B3=3,C3="い"),"分類9", ←一つ上の行のIFの第3引数(Falseの場合) IF(AND(A3="〇",B3=3,C3="う"),"分類10", ←一つ上の行のIFの第3引数(Falseの場合) IF(AND(A3="〇",B3=3),"分類4", ←一つ上の行のIFの第3引数(Falseの場合) IF(AND(A3="〇",C3="い"),"分類5", ←一つ上の行のIFの第3引数(Falseの場合) IF(AND(A3="〇",C3="う"),"分類6", ←一つ上の行のIFの第3引数(Falseの場合) "")))))))))) ←一つ上の行のIFの第3引数(Falseの場合)※ここだけ追加
桜さんの元の式につけ加えるのはここだけです。
(火災報知器) 2023/04/03(月) 10:11:04
=IFS(AND(A3="〇",B3=1,D3="△"),"分類1", AND(A3="〇",B3=2,C3="い",D3="△"),"分類8", AND(A3="〇",B3=2,D3="△"),"分類3", AND(A3="〇",B3=2,C3="い"),"分類7", AND(A3="〇",B3=2),"分類2", AND(A3="〇",B3=3,C3="い"),"分類9", AND(A3="〇",B3=3,C3="う"),"分類10", AND(A3="〇",B3=3),"分類4", AND(A3="〇",C3="い"),"分類5", AND(A3="〇",C3="う"),"分類6", TRUE,"")
IFS関数に書き換えると多少すっきりします。
(火災報知器) 2023/04/03(月) 10:15:28
Bが2………2,3,7,8(イ) Bが3………4,9,10(ロ) Bがその他…1,5,6(ハ) Step2. イ Dが△………3,8(ニ) Dがその他…2,7(ホ) ハ Bが1でDが△……1 上記条件以外…5,6(ヘ) Step3. ニ Cが「い」…8 Cがその他…3 ホ Cが「い」…7 Cがその他…2 ロ Cが「い」…9 Cが「う」…10 Cがその他…4 ヘ Cが「い」…5 Cが「う」…6 Cがその他…"" こんな風に分類できると思います。 (火災報知器) 2023/04/03(月) 11:19:44
=IF(A1="○",IF(B1=2,IF(D1="△",IF(C1="い","分類8","分類3”),IF(C1="い","分類7","分類2"))IF(B1=3,IF(C1="い","分類9”,IF(C1="う","分類10","分類4")),IF(AND(B1=1,D1="△"),"分類1",IF(C1="い","分類5",IF(C1="う","分類6",""))))),"")
上記マトリクスを馬鹿正直にIF文で書くと上記のとおりです。
(余計わかりづらい酷い関数です。)
(火災報知器) 2023/04/03(月) 12:02:24
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.