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

複数の文字列のいずれかが含まれていたらTRUEを返す関数について
エクセル2003を使用しています。
B列に例えば住所が入力されていて、「東京都北区」「千代田区」「東村山市」等いくつかの文字列のいずれかが含まれていたら、A列にTRUEを返すということをしたいのですが方法がわかりません。
単純なことのような気がするのですがどうしても思いつきません。よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

こうかなあ。

。。
A2セル
=OR(SUBSTITUTE(B2,$D$2:$D$4,"",1)<>B2)
[Ctrl]+[Shft] +[Enter] で確定、配列数式です({}で囲まれる)
下へオートフィル

D2:D4に文字列を入力しておく
「複数の文字列のいずれかが含まれていたらT」の回答画像1
    • good
    • 16
この回答へのお礼

早速の回答ありがとうございました。
SUBSTITUTEは使ったことがなかったので勉強になりました。

お礼日時:2010/10/18 13:19

一例です。


=SUM(COUNTIF(B2,{"*東京都北区*","*千代田区*","*東村山市*"}))
    • good
    • 35
この回答へのお礼

回答ありがとうございます。
いろんなやり方があるものですね。
2つに当てはまる場合は2、3つに当てはまる場合は3が返ってくるので別の目的に使えそうです。

お礼日時:2010/10/18 13:27

単純な方法でしたら、こんな感じでしょうか。


=NOT(AND(ISERROR(FIND("東京都北区",B2,1)),ISERROR(FIND("千代田区",B2,1)),ISERROR(FIND("東村山市",B2,1))))

文字列がたくさんあったら「東京都北区」「千代田区」「東村山市」の部分は、セルを参照させた方がいいでしょう。

C2セル=東京都北区
C3セル=千代田区
C4セル=東村山市

にすれば、
=NOT(AND(ISERROR(FIND($C$2,B2,1)),ISERROR(FIND($C$3,B2,1)),ISERROR(FIND($C$4,B2,1))))
です。
    • good
    • 8
この回答へのお礼

回答ありがとうございます。
この方向で考えてたのですがなかなかうまくいかなかったのです。
すっきりしました。

お礼日時:2010/10/18 13:24

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcelで複数の文字列のいずれかが含まれていたらTRUEを返す方法について

複数の文字列のいずれかが含まれていたらTRUEを返す方法について調べていたら、
教えて!gooで次の方法を見つけました。

「複数の文字列のいずれかが含まれていたらTRUEを返す関数について」
http://oshiete.goo.ne.jp/qa/6258216.html
> B列に例えば住所が入力されていて、
> 「東京都北区」「千代田区」「東村山市」等いくつかの文字列の
> いずれかが含まれていたら、A列にTRUEを返すということをしたい

> 回答者: mu2011 回答日時:2010/10/18 12:13
> 一例です。
> =SUM(COUNTIF(B2,{"*東京都北区*","*千代田区*","*東村山市*"}))

この方法で上手くいきましたが、関数の意味が分かりません。
COUNTIF(B2,"*東京都北区*")がB2に「東京都北区」を含む場合にTRUEを返すことは分かります。
SUM()の関数で例えば SUM("5", 15, TRUE) の結果が21になることも分かります。
SUM(COUNTIF(B2,"*東京都北区*")) がB2に「東京都北区」を含む場合に1になることも分かります。
COUNTIF()の中の{ , , }の意味、使い方が分かりません。
どなたか、教えてください。m(_ _)m

複数の文字列のいずれかが含まれていたらTRUEを返す方法について調べていたら、
教えて!gooで次の方法を見つけました。

「複数の文字列のいずれかが含まれていたらTRUEを返す関数について」
http://oshiete.goo.ne.jp/qa/6258216.html
> B列に例えば住所が入力されていて、
> 「東京都北区」「千代田区」「東村山市」等いくつかの文字列の
> いずれかが含まれていたら、A列にTRUEを返すということをしたい

> 回答者: mu2011 回答日時:2010/10/18 12:13
> 一例です。
> =SUM(COUNTIF(B2,{"*東京都...続きを読む

Aベストアンサー

>COUNTIF()の中の{ , , }の意味、使い方が分かりません。
{ , , }、この部分は、配列 ですよと指定してます。
{ , , }の中の内容で繰り返し計算してね。
つまり
COUNTIF(B2,"*東京都北区*")
COUNTIF(B2,"*千代田区*")
COUNTIF(B2,"*東村山市*")
の3回を計算して、その合計 SUMと云う事です。

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Q【Excel】複数の列を参照して、特定の文字列を含む行全体を別シートに抽出する関数

左画面(Book2)のようなシートがあります。

Book2の中で列D・列F・列Iの3列を参照し、別シート(Book4)のA1セルに入力した文字列と一致する文字を含む行全体を、Book4のA3セル以下に抽出するための関数を探しています。

画像の例は、「北海道」という文字列を3列のいずれかに含む行だけを手動で貼り付けたものなのですが、この処理を関数を用いて自動で行いたいのです。

参照したい文字列(北海道)は、3つの列にランダムに含まれている状態です。

元データ(Book2)を更新すれば、別シート(Book4)がリアルタイムに自動で生成されるようにしたいので、関数を使った方法で行いたいと思っています。

ご教示お願い申し上げます。

Aベストアンサー

こんばんは!
一例です。
元データは「Book2」のSheet1にあり、表示するのは「Book4」のSheet1とします。
Book4・Sheet1のA1セルに検索したい文字列を入力し、そのデータを表示させます。
(今回は画像通り”北海道”と入力しておいてください)

Book2のSheet1のJ列を作業用の列として使用します。
J3セルに
=IF(COUNTIF(D3:H3,[Book4.xlsx]Sheet1!$A$1),ROW(),"")
という数式を入れフィルハンドルでこれ以上データはない!という位まで下へコピーしておきます。

そしてBook4、Sheet1のA4セルに
=IFERROR(INDEX([Book2.xlsx]Sheet1!A:A,SMALL([Book2.xlsx]Sheet1!$J:$J,ROW(A1))),"")
という数式を入れ、列・行方向にフィルハンドルでコピーしてみてください。

※ 作業列が目障りであれば遠く離れた列に設けるか
非表示にしておきます。m(_ _)m

Qエクセル内で複数の文字(50個ぐらい)を一括で検索したい

タイトル通りなのですが、エクセル内の文字列で
特定の複数(50個ぐらい)の文字を一括検索したいのですが、
どうすれば 検索できますか?
決して検索後に、別の文字に置き換えや、
複数のエクセルを一括検索したいとまでは言いません。
一つのエクセル内で複数(50個ぐらい)の文字を検索し、
ヒットしてくれれば 後はヒットした文字列を手動で
削除していくので、検索できるだけで構わないです。

もちろん 贅沢を言えば、ヒットした文字列の
文字色or文字列の枠内か枠が色付きになってくれると
ひと目でヒットしている場所が分かり、助かるのは
事実ですが、簡単に できる方法ってありますか?
複雑なマクロを使うことになるのでしょうか?

どなたかご存知のかたがいらっしゃれば
教えていただけないでしょうか?

なにぶん無知なほうなので、面倒かと思いますが、
具体的に教えていただけると幸いに思います。
どうぞよろしくお願い致します。

Aベストアンサー

No2 merlionXXです。

> 検索したい複数の文字は どこに設定すれば よろしいでしょうか?

「A1セルからA50セルまでの各セルにそれぞれ検索したい文字があるとします。」と書いておいたのですが、意味が伝わらなかったのでしょうか?
A1からA50まのの各セルに設定してください。
なお、検索範囲はマクロ実行前に選択(セレクト)しておいてくださいね。

> 後、例:16F~70Fなど、範囲を決めての英数字の検索等も可能ですか?

では、16F~70Fを検索するマクロです。

Sub 連続検索02()
For n = 16 To 70 '16~70まで
Set c = Selection.Find(What:=n & "F", LookAt:=xlPart) '選択範囲を検索(16F~70F)
If Not c Is Nothing Then 'あったら
fAd = c.Address 'セル番地を控える
Do '繰り返す
i = i + 1 'カウント
c.Interior.ColorIndex = 8 'セル着色
Set c = Selection.FindNext(c) '連続検索
Loop Until c.Address = fAd '一巡するまで'繰り返し
End If
Next n '次の検索文字で繰り返す
Set c = Nothing
MsgBox i & "件を発見しました。", vbInformation, " ( ̄ー ̄)v"
End Sub

No2 merlionXXです。

> 検索したい複数の文字は どこに設定すれば よろしいでしょうか?

「A1セルからA50セルまでの各セルにそれぞれ検索したい文字があるとします。」と書いておいたのですが、意味が伝わらなかったのでしょうか?
A1からA50まのの各セルに設定してください。
なお、検索範囲はマクロ実行前に選択(セレクト)しておいてくださいね。

> 後、例:16F~70Fなど、範囲を決めての英数字の検索等も可能ですか?

では、16F~70Fを検索するマクロです。

Sub 連続検索02()
For n =...続きを読む

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

QEXCELで、特定の文字を含むセルを抽出したいのですが。

仕入れ帳のようなシートで、B列に商品名があります。
商品名に特定の文字(数字又は文字)を含む時、空白列のC列に、その文字を抽出する方法をご教示ください。B列の商品名は変化させずにです。
意図は、当シート内で並べ替えをする時に、C列をキーとするためです。
商品名が、各種文字と数字で構成されており、そのままでは、希望する並べ替えができないのです。
宜しくお願い致します。

Aベストアンサー

「IF」関数、「ISERR」関数、「FIND」関数を組合せれば可能ですね。
たとえば、文字「a」を検索するなら、B2セルを対象として、C2セルに、

=IF(ISERR(FIND("a",B2)),"","aが入っています")

と入れます。

注意事項として、アルファベットを検索する場合、大文字と小文字を区別します。
つまり、上の例ではB2セルに「a」があれば、「aが入っています」、と表示されますが、「A」では表示されません。
(「FIND」を「SEARCH」にすれば「a」・「A」どちらでも表示される)

QExcelで○○を含むという条件にてvlookup処理(比較)できるでしょうか?

説明が難しいのですが、以下のようなAとBの2つのシートがありまして、BシートのA列にある条件がAシートのA列の歯抜の状態で入力されてます。これにBシートのB列に、AシートのB列を表示したいという状況があります。

具体的なイメージは、以下の通りです。

===========================================
Aシート
 A        B
1 山田真太郎 東京
2 鈴木波奈子 名古屋
3 斉藤ミツル 大阪
-------------------------------------------
Bシート
 A  
1 藤ミツ
2 奈子
3 田真太
===========================================


BシートのB列に関数などを利用して以下のように表示させたいです。
==========================================
 A     B
1 藤ミツ 大阪
2 奈子  名古屋
3 田真太 東京
==========================================

このように、「セルにある言葉を含む」という条件にて、Vlookupを使ったような計算式というのを組む事ができるでしょうか?

私が感じているBシートのB1に入れる関数イメージ
=VLOOKUP((*A1*),A!$A$1:$B$3,2)

何か良い方法があればご教授ください。

説明が難しいのですが、以下のようなAとBの2つのシートがありまして、BシートのA列にある条件がAシートのA列の歯抜の状態で入力されてます。これにBシートのB列に、AシートのB列を表示したいという状況があります。

具体的なイメージは、以下の通りです。

===========================================
Aシート
 A        B
1 山田真太郎 東京
2 鈴木波奈子 名古屋
3 斉藤ミツル 大阪
-------------------------------------------
Bシート
 A  
1 藤ミツ
2 奈子
3 田真...続きを読む

Aベストアンサー

NO2です。
因みに=VLOOKUP("*"&A1&"*",A!A:B,2,FALSE)でも可能ですのでお試しください。

Qvlookup関数で検索値を含む文字列を検索する方法

vlookup関数で例えば E1のセルに=vlookup(D1,A:C,3,false)とした場合、D1が佐藤であれば、A列に「佐藤」がある場合には当然、「佐藤」がある行の3列目の値が返されますが、「佐藤」はなく「佐藤A」や「A佐藤」がある場合にもこれらがある行の値を返して欲しいのですが、いい方法はありませんでしょうか。*を使ってできると思ったのですがうまくいきません。上記例で、=vlookup("*佐藤*",A:C,3,false)とすればできますが、*佐藤*の部分はD1の引用を利用したいのです。
 よろしくお願いします。

Aベストアンサー

=VLOOKUP("*"&D1&"*",A:C,3,FALSE)

Qエクセルで、キーワード郡に含まれる文字列が含まれていたら、キーワードの

エクセルで、キーワード郡に含まれる文字列が含まれていたら、キーワードのID番号を返す、という関数式を知りたいです。

A列    
東京都春日部区   
神奈川県松戸町
千葉県霞ヶ関
埼玉県錦糸町
東京都千代田区
千葉県小松菜


キーワード郡
東京 1
千葉 2
埼玉 3
神奈川 4

↓↓↓結果↓↓↓

A列    
東京都春日部区     1  
神奈川県松戸町     4
千葉県霞ヶ関      2
埼玉県錦糸町      3
東京都千代田区     1
千葉県小松菜      2

といった具合です。

お分かりになる方いらっしゃいますでしょうか?

Aベストアンサー

A1から住所
D1:D4にキーワード
E1:E4に値として


そのサンプルにおける簡単な計算方法:
=VLOOKUP(LEFT(A1,2)&"*",D:E,2,FALSE)

もうちょっと一般化した計算方法:
=INDEX(E:E,MIN(IF(ISNUMBER(FIND($D$1:$D$5&"",A1)),ROW($D$1:$D$5))))
と記入してCtrl+Shift+Enterで入力。 ($D$5は間違いではないので注意)

QExcel 指定の文字列を含むとカウントするようにしたい場合は?

ただいまエクセルと格闘中の初心者です。
関数等はオートSUMくらいしか使ったことがなく、必要時にいちいち調べているような状態です。
今回は文字列を含むとカウントするところで躓いております。

表の中から特定の文字列を含むとカウントするようにしたい時COUNTIFを使うと思うのですが、この場合正確にその言葉じゃなければカウントされませんよね?

例えば「ボールペン」「サインペン」「シャープペン」のようなペン類をまとめてカウントしたい時、ペンだけで認識してくれるようにすることは可能なのでしょうか?
COUNTIF関連で探してみているのですが、中々思うような検索ができていません(もしくはわからずに見逃しているのかも?)

エクセルにお詳しい方、アドバイスを頂ければと思います。
よろしくお願い致します。

Aベストアンサー

検索条件に「*ペン*」としてみてはいかがですか。

ちなみに上記は「ペン」がどこかにあるものを対象とする。
「*ペン」は文字列がペンで終わるものを対象にする。
「ペン*」は文字列がペンで始まるものを対象とする。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング