- ベストアンサー
こんな場合のIF関数での式表記の仕方?(IF不慣れです。)
セルの値が数値でなく、コードナンバー形式のアルファベットの文字列の場合、○○より大きい、○○以下である、○○のアルファベット文字列を含んでいる、 AはB以上C以下であるとの条件区別でセルの操作をしたいのです。 A B C モデル名 台数 量産 Q40PHX 300 300 CW-25YXB 250 空白 CT-32GXB 350 350 ↓ ↓ のように3パターンしかないコード表が並んでいてCT-32GXB 以上 Q40PHX 以下のコードナンバーのものはB列のセルの台数をそのまま表示し、CW-○○から始まるコードナンバー量産品でないため、C列には台数を表示させたくないのです。 IF(OR(A2>"Q",A2>"CT",A2<"CW"………)等の式を入力したりしていますが、思うようにCW-○○のC列の量産の列の台数表示が消えず、空白なりません。ORをANDに変えたりしていますが、上手く行きません。 アルファベット順で行くとC列台数を表示させたくないCW-○○は昇順、降順でも上記3コードの中の中間ですので、『○○以上○○までの値を表示する』では上手く行かないのでしょうか? VLOOKUPのTRUE形式でも可能ですが、IF関数で条件区別、セル操作をしたいのです。A2>○<○のように条件式を設定するのでしょうか?ANDまたはOR以外の他の関数を極力ネストせずに演算子で簡単に条件指定、セル操作するにはどうすればよいのでしょうか?よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
意味が良く解りませんが、、、 C2に関数を入れて、CWから始まる型番なら空白、それ以外ならB2の値を出すなら =IF(LEFT(A2,2)="CW","",B2)
その他の回答 (3)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 > IF(OR(A2>"Q",A2>"CT",A2<"CW"………)等の式を入力したりしていますが >○○より大きい、○○以下である、○○のアルファベット文字列を含んでいる、 きちんと、文章で条件を書いて欲しかったですね。その等号式では良く分りません。 C2:~フィルダウン・コピー =IF(OR(LEFT(A2,1)>"Q",AND(LEFT(A2,1)="C",AND(MID(A2,2,1)>"T",MID(A2,2,1)<="W"))),"",B2) >ANDまたはOR以外の他の関数を極力ネストせずに演算子で簡単に条件指定、セル操作するにはどうすればよいのでしょうか? それから、OR やAND やネストを使わないで作りたいというなら、マクロやVBAの質問になってしまうような気がしますね。
- imogasi
- ベストアンサー率27% (4737/17069)
>セルの値が数値でなく、コードナンバー形式のアルファベットの文字列の場合 こんなの普通の仕事でよくあることです >、○○より大きい、○○以下である、○○のアルファベット文字列を含んでいる 文字列の比較を行ったときの大小の規則を、十分勉強すべきです。 >セルの操作をしたい 以下のことはセルの操作とはいいません。 >CT-32GXB 以上 Q40PHX 以下のコードナンバーのものは 下記のモデル名で Q40PHX CW-25YXB CT-32GXB での順序が、ソートしたとき、この順序になると思っているのですか。 ではないですよね。ソート(並べ替え)すれば判るように CT-32GXB CW-25YXB Q40PHX の順です。 ですから、「CT-32GXB 以上 Q40PHX 以下」の判定をしてもだめです。 CW-25YXB が含まれてしまい、目的に沿わないでしょう。 以上のことは、質問後半ではご存知のようにも取れることが書いてある。 しかし、前半は書く質問に書く必要なし。 質問には原則として、自分の苦闘・検討段階を書く必要なし。 質問目的がぼやけるだけ。 回答しようとする人なら知っているだろうようなことは書く必要なし。 ーーーーーー 結局は 「CW-○○から始まるコードナンバー」分は(C列に)表示しない が目的ではないのですか? それなら =IF(MID(A1,1,3)="CW=",A1,"") だけでは、ダメなんでしょうか。 >(1)VLOOKUPのTRUE形式でも可能ですが、IF関数で条件区別、セル操作をしたいのです。(2)A2>○<○のように条件式を設定するのでしょうか?(3)ANDまたはOR以外の他の関数を極力ネストせずに(4)演算子で簡単に条件指定、セル操作するにはどうすればよいのでしょうか 自分の検討過程を述べているのでしょうが、見当はずれです。(1)ー(4)ともこの場合に使う方法ではないでしょう
- s_yoshi_6
- ベストアンサー率73% (1113/1519)
>CT-32GXB 以上 Q40PHX 以下のコードナンバーのものはB列のセルの台数をそのまま表示し、 というご質問文からは、 CT-32GXA CT-32GXB ──── CT-32GXC … CW-25YXB … Q40PHW ──── Q40PHX Q40PHY という区切りになりそうですが、その後書かれている条件式などから、 CS CT ──── CU … CW … P ──── Q R ということでもよろしいのでしょうか。 もしそうであれば、C2に =IF(AND(A2>="CU",A2<"Q"),"",B2) または、範囲選択を逆にして、 =IF(OR(A2<"CU",A2>="Q"),B2,"") として、以下コピーでいいと思います。 しかし、 >CW-○○から始まるコードナンバー量産品でないため、C列には台数を表示させたくない ということで、「CW-○○から始まるコードナンバー」のものだけ非表示にされたいのであれば、C2に =IF(LEFT(A2,2)="CW","",B2) で以下コピーの方がいいと思います。
お礼
早速のご回答有難うございます。簡単なことですが、それが中々、具現化できませんでした。教えていただいた数式を当てはめるとその通りになりました。 まだまだ、スキルが低いもので大変、参考になりました。符号と順序を整理していると、頭がゴチャゴチャになり、迷路に入っておりました。 どうもすみませんでした。
お礼
ご返答有難うございます。 説明いただいた数式で簡単にできました。 あまり多くの関数を使えないもので、こんなに簡単に出来るとは知らず、助かりました。 本当に有難うございました。