プロが教える店舗&オフィスのセキュリティ対策術

C列に以下が入っています。
・SELL
・BUY
・WITH
・DIPO


上記のC列の内容によって、
J列に返す答えを変えたいです。

CがSELLなら→A
CがBUYなら→B
CがWITHなら→C
CがDIPOなら→D


質問1)
どのように条件式を作ればいいのでしょうか?

質問2)
C列全体に条件を入れたいのですが、1箇所のセルに入力を行なってドラックする
のか、それとも、どこかに条件式を1回入力すれば済む方法があれば教えて下さい。



よろしくお願いします。

A 回答 (6件)

No5で回答してから気づいたのですが、


隣の行に連続してデータが入っていなくても
もうひと手間かければ入力のある行だけに式を入れられますね。
1、Ctrl+endキーを押すと入力されているセルの最終行に移動する
2、その行のJ列に何か適当に入力する
3、J列の先頭に式を入力してセルをコピー
4、Shift+Ctrl+↓を押すとJ列の先頭から2で入力したところまで選択される
5、貼り付けする
    • good
    • 0
この回答へのお礼

さらに情報頂いてありがとうございます。
これもいいですね^^

色々ありがとうございました。

お礼日時:2017/11/25 17:20

すでに入力済みのものに処理するということですよね?


難しく考えずに単純にifの入れ子で対応するのではだめですか?
J2に入れる数式で
=IF(C2="SELL","A",IF(C2="BUY","B",IF(C2="WITH","C",IF(C2="DIPO","D",""))))
のように。

入力のある行だけに数式を入れたい場合、
J列の隣の列に連続して値が入っているのであれば、J2に上の数式を入れてから
セルの右下(オートフィルするときにドラックする部分)をダブルクリックすれば
入力されている行全てに数式が入ります。
そうでないならば、手でオートフィル範囲をドラックするか
VBAを使って入力のある最終行を取得して数式を貼り付けるしかないと思います。
よく使うならVBAを使うほうがスマートかな。

J列全てに数式を入れるので良ければ
1、J2に数式を入れてからセルをコピー
2、Shift+Ctrl+↓を押して一番下の行まで選択してから貼り付け
でできます。ファイルが重くなりますが・・
    • good
    • 0
この回答へのお礼

入れ子はこう記述するんですね。
助かりました。

また質問しなかったのですが、自分があればいいなと思っていた”J列全てに数式を入れるVBA”
の答えまで頂いてラッキーです。

本当にありがとうございました。

お礼日時:2017/11/25 17:18

>説明をする上で長々としたものになるため、便宜的にabcdとしました。



ABCDだからvlookupよりも表を1列減らせることで
MATCHとCHARを使ったのですが、便宜的な変更が
全く不適切な回答になってしまいましたね、多分。

MATCHで番号が得られるという事だけ追記します。
    • good
    • 0
この回答へのお礼

ありがとうございます。
色々参考になります。

お礼日時:2017/11/25 17:14

無謀は言い過ぎかもしれません。


104万行も数式で埋めることは適切では
ないのでは?の意です。

あとなぜ本来意味のありそうな言葉を
abcdに置き換える目的は何でしょう?

何か根本的には別解があるような気がして・・・
    • good
    • 0
この回答へのお礼

わざわざありがとうございます。
実際にはabcdそのものに置き換えるわけではなく、計算式が入ります。
説明をする上で長々としたものになるため、便宜的にabcdとしました。

お礼日時:2017/11/22 17:08

質問1)について


今回のようなものならVLOOKUP関数が適しています。
http://www.yoshikawa.co.jp/ybs/skilup/ybs0308.htm
本来は範囲としての表を用意する必要がありますが、C列の文字列が
短いこともあり配列定数でも対応できます。
https://dekiru.net/article/4468/
http://www.eurus.dti.ne.jp/yoneyama/Excel/kansu/ …
数式の例:J2に以下の式を入力
 =IFERROR(VLOOKUP(C2,{"SELL","A";"BUY","B";"WITH","C";"DIPO","D"},2,FALSE)"")

質問2)について
C列に対応する同じ行のJ列に表示したいのでしたら、上記の式を必要
範囲までオートフィルします。
http://www.eurus.dti.ne.jp/~yoneyama/Excel/input …

C列全体にと書かれていますがJ列全体の間違いですか?
J列だとして、J2を選択し[ CtrL+Shift+↓ ]キーで列全体を選択します。
 =IFERROR(VLOOKUP(C2,{"SELL","A";"BUY","B";"WITH","C";"DIPO","D"},2,FALSE)"")
を数式バーに入力し[ CtrL+Enter ]キーで範囲全体に一括入力します。
http://excel-ubara.com/excel1/EXCEL512.html
    • good
    • 0
この回答へのお礼

ご丁寧に説明いただきありがとうございます。また参考サイトも載せていただき助かります。
一つづつ紐解いていきたいと思います。

お礼日時:2017/11/22 15:37

>どのように条件式を作ればいいのでしょうか?


表を別途設けてvlookupなりMatchとCHAR関数で
やるのが普通かと思いますがC列とだけで
行が書いていないですね。数式には当然行が必要になります。
普通なら1行目はタイトル行で2行目からでいいですか?

仮にSheet2のA1:A4にその4語を置く場合J2セルは
=IFERROR(CHAR(MATCH(C2,Sheet2!$A$1:$A$40)+64),"")
が考えられると思います。
勿論下にオートフィルできます。

ところで話はまるきり変わりますが文字数からみて
生産性から考えるとJ列のABCDを入力するほうが
圧倒的に楽ですよね。なぜこの流れになるのかも
お教え願いたいところです。

>C列全体に条件を入れたい
何行のデータがあるのか存じ上げませんが
列全体は無謀と思います。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
列全体に条件を入れるのは無謀なのですね。そういったことを含め、自分はまだまだ勉強不足です。ご説明いただいた内容をゆっくり消化していきたいと思います。

お礼日時:2017/11/22 15:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!