• ベストアンサー

エクセルで複数の特定の文字列をふくむ行を非表示にしたい。

仕事でエクセル2000を使用しています。 A列に住所が4万件入っているファイルで福岡県と長崎県、愛知県、大阪府の行を表示しないようにしたいと思ってます。 B列に以下の関数を入れて、オートフィルタで0を選択して表示させないように試みました。 =IF(ISERROR(FIND("福岡県",A3)),0,1) 福岡県だけならできますが、他の県を条件に含めるにはどうしたらよいのでしょうか? この関数にこだわってるわけではありませんので何か別によい方法があれば教えてください。 よろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • maron--5
  • ベストアンサー率36% (321/877)
回答No.4

◆こんな方法もありますよ ★別の列に =COUNT(FIND({"福岡県","長崎県","愛知県","大阪府"},A1)) ★下にコピー ★オートフィルターで0を抽出

Thermin
質問者

お礼

ありがとうございます! この関数は思いつきませんでした。 さすがですね。

その他の回答 (5)

noname#204879
noname#204879
回答No.6

=IF(ISERROR(FIND("福岡県",A3))+ISERROR(FIND("長崎県",A3))+ISERROR(FIND("愛知県",A3))+ISERROR(FIND("大阪府",A3))<4,0,1)

Thermin
質問者

お礼

ありがとうございます。 こういう式もあるのですね。 関数をもっと勉強します。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんにちは。 >オートフィルタでは2つまでの条件しか指定できないのであきらめたのです。 フィルタオプションでいけます。 最初に、ありきたりですが、 住所 ←タイトル名(フィールド名)が必要です。 福岡県*** 空いている場所の2行目に 以下のような式を入れます。 =SUMPRODUCT(COUNTIF(A2,{"福岡県*","長崎県*","愛知県*","大阪府*"}))=0 検索式は、A2 からで、A1ではありません。下にコピーする必要はありません。この数式は一つでよいのです。そして、この式は、True でも、False でも関係ありません。 設定は、 データのあるA列にもマウス・カーソルを置いてから、 [データ]--[フィルタオプションの設定](何かメッセージが出ても無視) [リスト範囲]は自動で入るはずです。 [検索条件範囲]に、 例えば、 $F$1:$F$2 (先ほど作った、数式がF2 に入り、F1 は、空にしておきます) そうすれば、オートフィルタを使ったように出てきます。 これは、領域の使用が少なくて済みます。 まずは、試してみてください。

Thermin
質問者

お礼

ありがとうございます。 結果に感動しました!びっくりです。 まだどうしてそうなるのかよくわからないのですが こんな方法があるのですね。

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.3

いやはやとんでもない回答をしてしまいました。 お許しあれ。 仰るようにオートフィルターでは条件は2つですねぇ。(^^;;; 解決されたようですが、参考までに。。。 ●ツールメニュー > フィルターオブションの設定 でやってください。 これなら汎用的なものが出来ます。 使い方は表示されるダイアログを見れば分かると思います。 以上。  

Thermin
質問者

お礼

ありがとうございます。 フィルターオプションの設定は今まであまり使ったことが なかったので。 まだまだ使いこなせてないことを改めて実感しました。

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.2

作業列を使わないでも次のようにすればできませんか。 1.セルA1を選択する 2.データメニュー > オートフィルター と進む 3.A1の▼ボタンをクリックし表示されるリストで(オプション)を選択 4.オプションダイアログで以下のようにする (左のボックス)   (右のボックス) __福岡県__     等しくない __長崎県__     等しくない          <<以下同様>> 5.OKボタン 外しましたらご容赦! 以上。

Thermin
質問者

お礼

ご回答ありがとうございます。 オートフィルタでは2つまでの条件しか指定できないのであきらめたのです。

  • keirika
  • ベストアンサー率42% (279/658)
回答No.1

=IF(ISERROR(FIND("福岡県",A3)),0,1)+IF(ISERROR(FIND("長崎県",A3)),0,1)+IF(ISERROR(FIND("愛知県",A3)),0,1)+IF(ISERROR(FIND("大阪府",A3)),0,1) でオートフィルターで0を抽出でどうでしょう。

Thermin
質問者

お礼

ありがとうございます。 解決しました! どこに+をいれるのかわからず、関数を短くするために無理やりFINDのカッコ内に複数の県をプラスでいれようとしてエラーになってました。 ちゃんと関数を勉強しないとだめですね。

関連するQ&A

  • エクセル 特定文字の記入された行全てを取消表示

    住所録で、連絡の付かない人の備考欄(eの列)に @ の文字を入力しています。 例えば、10行まである住所録のうち、2行目と3行目のeの列に@が入力されているとき、 2行目と3行目をif関数などを使用して全て取消し表示したいのですが、どうしたらよいでしょうか。 ※実際は住所録は300行ほどあって、いちいち手動で@の文字の列を選んで修正・・・ という作業が手間となっています。

  • エクセル 特定の行を表示させるには…

    エクセル初心者です。 以前、ここで教えていただいたのですが、 さらに問題が出てしまいまして…どうかご教授ください。 前回同様、機材の貸し出しの表についてですが、 受付日、貸し出し機材、貸し出し先、使用時間を月ごとに別シートにまとめるというのは、 おかげさまでできました。(ありがとうございます!) http://okwave.jp/qa/q8328679.html →前回の質問です。 そこに、備考として「どこから受注を受けたか」という欄があり、 【海外】【国内】のどちらかに該当しているのですが、 以前の方法で作ったデータから、更に【海外】【国内】どちらかのデータを、 同じシートもしくは、別なシートに表示させたいのです…。 それで、私は別シートに表示させるようにしようと思い、 検索列を設け、「海外」または「国内」と打ち込むと、 その一覧が出るような表を作成しようとしました。 以下のように作ったのですが…。 ベタ打ちした表から、 機器コード、使用機器の名称、使用部、使用時間、海外/国内、検索列 を表示させた表を作りました(シート1)。 尚、機器コード~検索列までは、Aから順番の列にはなっていません。 途中に表示させたくない欄もあることから、いくつか非表示としている列があり、 機器コード=A列、使用機器の名称=D列、のように飛び飛びになっています。 検索列に  =IF(ISERROR(MATCH('Sheet2'!$E$4,N4,0)),"",ROW()) このような関数を入れました。(「海外」もしくは「国内」の行を探し、カウントするため) シート2には、 機器コード、使用機器の名称、使用部、使用時間、検索行、該当数 という欄を作りました。 ↑A3~F3 =IF(ROW()-1<=$F$4,INDEX(Sheet1!A:A,SMALL(Sheet1!$N:$N,ROW()-1),1),"") 機器コードの欄の実際値が入るセル(A4)に、上記の関数を入れました。 「検索行」には「海外」もしくは「国内」と入れると、一覧が出るように、 「該当数」にはその表示させた一覧の合計数が出るようにしようと思い…。 「該当数」の値が入るセル(Sheet2のF4)には、「=COUNTIF(Sheet1!N:N,E4)」 という関数を入れました。 Sheet2の該当数とSheet1の検索列には正しい値が返されていると思うのですが、 (試しに「海外」と打ち込んでみたところ、該当数は正しい数字が表示され、  検索列も正しい列番号が表示されていました) 肝心の機器コード~使用時間までの一覧が表示できません。 説明が下手で申し訳ないのですが、どうすれば正しく表示されるか教えていただけないでしょうか。 この関数に限りらず、別な関数でも構いません。 ただ、あくまで関数での表示を希望しています。 オートフィル機能・マクロ以外で教えていただきたいので、よろしくお願いいたします。

  • エクセルのfind関数で、複数の条件

    エクセルで、住所に"北海道"が含まれていると、"北海道"と表示し、 "青森県"や"岩手県"などが含まれていると、"東北"と表示したいです。 以下の関数を作ったのですが、北海道のときは想定どおり"北海道"と表示されますが、 それ以外のときは#VALUE!になってしまいます。 どこが悪いでしょうか? =if(find("北海道",A1)>0,"北海道",if(find("青森県",A1)>0,"東北",if(find("岩手県",A1)>0,"東北",if(find("宮城県",A1)>0,"東北",if(find("秋田県",A1)>0,"東北",if(find("山形県",A1)>0,"東北",if(find("福島県",A1)>0,"東北","該当なし")))))))

  • エクセルで特定文字の置き換え

    エクセル2000です。 A1列に数百行の文字列があります。   A 1 X00 2 11111 3 X00 4 2222 5 2222 x00は毎回別の行に入ります。 X00を上からY1・Y2・Y3(番号は上から連番です。)・・・ と書き換えてたいです。 いまやっている方法はオートフィルターを使ってX00のみを 表示させて、手動で入力しています。 オートフィルター以外でなにか効率的な方法はありますか? よろしくお願いします。

  • Excelで特定文字があった場合、文字を表示したい

    はじめまして。 Excelの関数で質問があります。 あるセル(仮にA1)に文字列を入れます。 他のセルに「A1にAの文字があったら、B1(このセル)にC1にある文字を表示する。Aの文字がなかったらなし、と表示する」という関数を指定したいと思っております。 一応、調べた限りでは「=if(find("A",A1),C1,"なし"」というような関数を使おうと思っております。 が、使用してみたら、「Aの文字がなかったら、なし、と表示する」の部分ができませんでした。 解決するにはどのようにすればよいでしょうか。 また、他によい関数がありましたら併せてお教えいただきたいと思います。 宜しくお願いいたします。

  • エクセル、オートフィルタで最後の列が消えてしまう

    エクセル2003を使っています。 オートフィルタと、ウィンドウ枠の固定を使っています。 1500行ほどあります。最後の行にはSUBTOTAL関数で合計値を出すようにしています。 その合計値の列の直前に30行ほど0だけの列を入れています。 その列を入れないとオートフィルタで絞り込んだときに合計値列が消えてしまいます。 ですが、印刷するときにその0の列が入ってしまいます。 30行の0の列を全て消しても、ちゃんと合計値列が表示されるようにするにはどうしたらよいでしょうか。

  • 【エクセル】隣のセルで特定の文字列があったら、表示。

    〔セルC列に関数を入れたいとして、 隣のセル(C1だったらB1)に、 「集計」という言葉があったら、 C1にB1のセル全体を表示しなさい。〕 というだけの関数を入れたいだけなのですが、 IF?,FIND?なんだか、ごちゃごちゃになってしまいました・・・ どなたか何卒、ご指導よろしくお願い致します。

  • 列から特定の文字列検索→該当以外の「行」隠すマクロ

     顧客情報のマクロを組んでおります。  2列目  3列目   総務課 鈴木一郎  営業課 山本一郎  庶務課 田中一郎  営業課 本田一郎  …といったデータがあります。  「総務課」というボタンをおしたら、   2行目の中から、「総務課」という文字列を探し出し、  (オートフィルタの作業そのものなのですが)それ以外の行は「隠す」にしたいと思っております。  総務課の人間だけを表示するようなマクロにしようと。    これまでオートフィルタを使用したマクロを組んでいたのですが、  どうもオートフィルタボタンが表示されてしまうと、表が見づらくなるので、美しくありません…。  そこで、このようなマクロを作ろうと考えました。    とくに「ROW2」から特定の文字列を検索して…  という下りがわかりません。  アドバイスをいただけると、ありがたく思います。  どうぞ、よろしくお願いいたします。  

  • エクセル:”特定の行”を非表示

    (MAC10.6,Office2011MACのエクセルを使っています。VBA初学者です。)  はじめまして、よろしくお願いします。 A列に日付(A1にM月D日を入力し、A2以下に+1)、B列に”三交代”の曜日を記入(月AM、月PM1、月PM2)した勤務表を作っています。 <質問>土・日曜日の「PM1、PM2」の行を非表示にできないか悪戦苦闘しています。どなたかご教示いただけないでしょうか? なお、オートフィルターではA1の入力日によってうまく反映できません。

  • エクセルで文字列を抽出する関数

    エクセルでデータ処理をしています。 例えばA列に Iwate kenichi Akita hachiro gata (1992) Yamagata shi,1905 というデータがあり、同じ関数を使ってそれぞれB列に Iwate kenichi Akita hachiro gata Yamagata shi と抽出したいので、 =IF(FIND("(",A1),LEFT(A1,FIND("(",A1)-1),IF(FIND(",",A1),LEFT(A1,FIND(",",A1)-1),A1))という式を作ってみましたが、うまく処理できません。 どのような式を作れば上手くいきますか?マクロは使えませんので、関数でお願い致します。

専門家に質問してみよう