Excel (一般機能)

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

 
(Windows 7 Professional : Excel 2013)
計算結果から、countifで一致するものを探したい
投稿日時: 17/10/23 01:00:24
投稿者: okabe

お世話になっております。
if(countif(A1,"*C*"),A,B)でA1にCを含んでいるかどうかを検索出来ますが、
A1のうち、更に以下抽出したものから検索する場合、どうしたら良いか分かりません。
 
・A1セルから以下条件で文字を抜き出した状態で、countifで検索する。
MID(A1,FIND("$",SUBSTITUTE(A1,"-","$",1))+1,5)
 
・以下式はエラーが出ます。
=if(countif(MID(A1,FIND("$",SUBSTITUTE(A1,"-","$",1))+1,5),"*C*"),A,B)
 
申し訳ありませんが、良い方法があれば教えて頂きたく宜しくお願い致します。

回答
投稿日時: 17/10/23 07:37:55
投稿者: んなっと

具体例を添えて質問してください。
一つ目の"-"を検索するだけならSUBSTITUTEは不要で、
=IF(ISNUMBER(FIND("C",MID(A1,FIND("-",A1)+1,5))),"A","B")
とか
=IF(ISERR(FIND("C",MID(A1,FIND("-",A1)+1,5))),"B","A")
でいいと思います。
 
 
●ただもしかしたら前回の質問と関連して、以下のように複数の"-"を
検索した結果を求めているかもしれません。
 
               A B C D
1 11/13-5K 11/27-3CK 11/30-6E B A B
2      11/27-3CK 11/30-6E A B  
3          11/27-3CK A   
 
その場合、例えば
B1
=CHOOSE(ERROR.TYPE(FIND("C",MID($A1,IFERROR(FIND("$",SUBSTITUTE($A1,"-","$",COLUMN(A:A))),NA())+1,5))/0)-1,"A","B",,,,"")
右方向・→下方向・↓
 
●区切り位置[区切り文字" "]でいったんバラバラにしてから考えるのがベストだと思います。
関数でばらばらにするなら、
                A     B       C     D
1 11/13-5K 7E5-11/27-3C 11/30-6E 11/13-5K 7E5-11/27-3C 11/30-6E
 
B1
=TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",300)),300*(COLUMN(A1)-1)+1,300))
右方向・→

回答
投稿日時: 17/10/23 15:07:27
投稿者: んなっと

それから前回の質問で、
http://www.moug.net/faq/viewtopic.php?t=76343
   
こちらの提示した具体例に、勝手に2017/11/30の形を追加してありますよね。
気になったかもしれないので補足させてください。
  
                 A   B   C   D
 1 11/13-5K 11/27-7E5 2017/11/30-6E 11/13 11/27 11/30
   
yyyy/m/dの形式でないと正しく抽出できない日付が存在するんです。
うるう年のみ存在する2/29です。
  
2016/2/29...○ 2016年はうるう年
2/29...× データ処理した今年2017年はうるう年ではないから失敗
  
先に" 2/29"→" 2016/2/29"の置換をするなどが考えられますが、
細かいことですので問題なければ無視してください。

投稿日時: 17/10/23 18:35:43
投稿者: okabe

んなっと様
 
ご回答頂きありがとうございました。
説明が足りず、申し訳ありません。
 
以下の内容が知りたい内容でしたが、
教えて頂いた式でうまくいきました。
>>
●ただもしかしたら前回の質問と関連して、以下のように複数の"-"を
検索した結果を求めているかもしれません。
  
式がどういう論理なのか、しっくり来ていませんが
応用出来るよう分解して考えたいと思います。
 
以上ありがとうございました。