- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:条件に合う文字を指定した数だけ表示する)
Excelで指定した文字数だけA列の値をB列に表示する方法
このQ&Aのポイント
- Excelのセルに書かれた文字列から指定した数だけ文字を取り出し、別のセルに表示する方法を教えてください。
- 質問者はA列にあるセルの値から、(の前までの文字をB列に表示したいと考えていますが、現在の方法では(の前までではなく、(までの文字が表示されてしまいます。
- もしもセルの値が「Z****」という形式で始まる場合、正常に(の前までの文字が表示されるような関数や方法があれば教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
答えは出ていると思いますが、((左カッコ)を見つけて、先頭から(の見つかった手前までを切り出せば仕舞いでは無いですか。 ーー こういうときにIF関数を考えるのは見当ハズレです。 Zの場合5桁、Aの場合6桁、・・とルール性があってもIFに頼らない関数を考えるべきです。 頭の中のロジックは「もし・・」であって「もし・・」であれば という発想はしても。 良くここの質問で、初心者がIF関数を自作関数例で上げますが、IF関数は、発見や探索には使うべきでない関数です。 ーー *が質問に出ていますので、 ワイルドカード(*)を考えるのなら =SEARCH("(*",A1) のようにします。FIND関数と一緒で、 Z0808(BBB)の場合、6が帰ります。 =LEFT(A1,SEARCH("(*",A1)-1) で結果 Z0808
その他の回答 (2)
- nayuta_lot
- ベストアンサー率64% (133/205)
回答No.2
こんにちは。 =LEFT(A1,FIND("(",A1,1)-1) でどうですか? FIND("(",A1,1) は、A1の文字列の中から、"("の位置を返す関数です。 ( は表示しないので、FIND("(",A1,1)-1です。 後は、LEFT(A1,文字数)で取得できます。 ご参考まで
質問者
お礼
回答ありがとうございました。 なんとか解決できました。
noname#70958
回答No.1
単純に、"("の位置を探してその直前までを切り出せば良いのでは? =LEFT(A1,FIND("(",A1)-1) ご参考まで。
質問者
お礼
回答ありがとうございました。 解決できました。
補足
回答ありがとうございます。 確かにすぐIF関数に頼ってしまうのですが、その時点で的外れなんですね。 色々と勉強し直します。ご指摘ありがとうございます。 -------------------------------------------------- 勉強し直すと言ったばかりなのですが、もう1つ質問させてください。 回答頂いた数式で先の質問は解決しましたが、『Z0808(BBB)』と"()"がつくものと、『Z0809』や『AI0811』など"()"が、つかないものが出てくる場合は、どのような式になるのでしょうか? 回答よろしくお願いします。