プロが教えるわが家の防犯対策術!

お分かりになる方お教えください。

エクセル関数で特定の文字列のある行を抽出するのに

=INDEX(A$1:A$100,SMALL(INDEX(($A$1:$L$100<>"ABCDE")*1000+ROW($A$1:$A$100),),ROW(A1)))

という式を入れたのですが
”ABCDE”の完全一致ではなく、”ABCを含む”
のような条件にするには、どのような式を入力すればよろしいでしょうか。

ご教示お願い致します。

A 回答 (3件)

続けてお邪魔します。



遅くなってごめんなさい。
関数で!とやりかけてみましたが、作業用の表を利用すればできそうです。
ただ、一気に!となると挫折しました。

手っ取り早くVBAでの一例です。
「ABC」が含まれているセルだけを同じSheetのN列に羅列するとします。
↓のコードをシートモジュールにしてください。

Sub Sample1()
Dim cnt As Long, c As Range
Range("N:N").ClearContents
For Each c In Range("A1:L100")
If InStr(StrConv(c, vbNarrow), "ABC") > 0 Then
cnt = cnt + 1
Cells(cnt, "N") = c
End If
Next c
End Sub

※ 関数でないので、データ変更があるたびにマクロを実行する必要があります。m(_ _)m
    • good
    • 0
この回答へのお礼

お返事が遅くなり申し訳ございません。

実際に利用するのは私ではなく、別の社員なのですが
PCに疎く、コピペのみでできればいいなと思っておりました。
元データも毎回変わるため、作業自体を少なくするには関数の方が楽なのかな
と考えていましたが、難しそうなので私も諦めました。

お返事いただいた内容で後日チャレンジしてみます。
ありがとうございます。

お礼日時:2018/02/26 17:17

No.1です。



投稿後気づきました。
「ABCDE」以外のセルで、対象範囲はA~L列なのですね。
どうも失礼しました。

前回はA列だけを参照する数式なので無視してください。
今回の質問は
「ABC」が含まれないセルというコトでしょうか?それとも「ABC」が含まれるセルでしょうか?

いずれにしても関数で一気に!となるとかなり厄介だと思います。

他の方の良い回答があると思います。
ごめんなさい。m(_ _)m
    • good
    • 0
この回答へのお礼

お返事が遅くなり申し訳ございません。

ABCが含まれる、という式をいれたかったのですが
難しそうですね。

自分で使うのでしたらこんなややこしくなくていいのですが
出来るだけシンプルに、と考えるほど
複雑になってしまって…

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

お礼日時:2018/02/26 17:20

こんにちは!



頭3文字だけではなく、「ABC」が含まれているセルを表示すれば良いのですね。

=IFERROR(INDEX(A$1:A$1000,SMALL(IF(ISNUMBER(FIND("ABC",A$1:A$1000)),ROW(A$1:A$1000)),ROW(A1))),"")

配列数式なのでCtrl+Shift+Enterで確定し(←必須★)
フィルハンドルで下へコピーしてみてください。m(_ _)m
    • good
    • 0

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