Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Ultimate : Excel 2010)
FIND関数で検査する文字列を2個指定できますか?
投稿日時: 18/05/30 10:38:02
投稿者: gorby

=TRIM(LEFT(SUBSTITUTE(REPLACE(H2,1,FIND("BC:",H2&"BC:")+6,)," ",REPT(" ",2000)),2000))
 
上記の関数の中でFIND関数でH2セルの中の"BC:"の位置を検索していますが、
H2セルの中の"BC:" または "AC:"の位置を検索する関数はどのようになりますか?
なお"BC:"と"AC:"が同じセルに存在することはありません。
("BC:"|"AC:")などのように、カッコでor条件を指定できると助かるのですが、Excelでは無理でしょうね。。。

回答
投稿日時: 18/05/30 10:54:31
投稿者: ゆーたん

配列定数という書き方があります。(^_^;)
 
=TRIM(LEFT(SUBSTITUTE(REPLACE(H2,1,MIN(FIND({"BC:","AC:"},H2&{"BC:","AC:"}))+6,)," ",REPT(" ",2000)),2000))
 
こんなかんじです。

投稿日時: 18/05/30 11:17:38
投稿者: gorby

ゆーたん さんの引用:
配列定数という書き方があります。(^_^;)
 
=TRIM(LEFT(SUBSTITUTE(REPLACE(H2,1,MIN(FIND({"BC:","AC:"},H2&{"BC:","AC:"}))+6,)," ",REPT(" ",2000)),2000))
 
こんなかんじです。

 
ありがとうございます。しかし、結果はうまくいきませんでした。理由は、よく調べてみると
 
"BC:"の場合は 上記の式で +6 でよいのですが、
"AC:"の場合は 上記の式で +3 だったからです。
 
このような条件分岐は可能でしょうか?
 

回答
投稿日時: 18/05/30 11:45:25
投稿者: ゆーたん

>"AC:"の場合は 上記の式で +3 だったからです。
足す所も6でなく配列定数{6,3}を使って、
そのあとでMINにしたらいいのかな?(^_^;)

投稿日時: 18/05/30 13:07:48
投稿者: gorby

ゆーたん さんの引用:
>"AC:"の場合は 上記の式で +3 だったからです。
足す所も6でなく配列定数{6,3}を使って、
そのあとでMINにしたらいいのかな?(^_^;)

 
 
 
 
 =TRIM(LEFT(SUBSTITUTE(REPLACE(H2,1,MIN(FIND({"BC:","AC:"},H2&{"BC:","AC:"}))+MIN{6,3},)," ",REPT(" ",2000)),2000))
 
では動作しませんでした。ご指導をお願いします。

回答
投稿日時: 18/05/30 13:18:24
投稿者: ゆーたん

全体にけっこう難しい数式ですが、
ちゃんと細部も理解して使ってますか?(^_^;)
ちいさな修正をするときに困ったりするので、
できればきちんと仕組みを理解できる数式を使った方が、
いいのかもしれません…。
たとえそれが作業列を使うことになったとしても。
 
=TRIM(LEFT(SUBSTITUTE(REPLACE(H2,1,MIN(FIND({"BC:","AC:"},H2&{"BC:","AC:"})+{6,3}),)," ",REPT(" ",2000)),2000))
 
こんなのでも。
 
=TRIM(LEFT(SUBSTITUTE(REPLACE(H2,1,LOOKUP(9^9,FIND({"BC:","AC:"},H2&"BC:")+{6,3}),)," ",REPT(" ",2000)),2000))

投稿日時: 18/05/30 15:56:17
投稿者: gorby

ありがとうございます。