• ベストアンサー

エクセル2000です。ある文字を含んでいた場合別シートに抽出したい。

シート1の A列に名前 B列に地名 C列に詳細 D列に備考欄 E列に電話番号 F列に携帯番号 ------------------------- B列の地名の中で、(たとえば)「東京都」があれば、 「東京都」のある行すべてを、シート2にコピーしたものを抜き出したいのですが、 お知恵を拝借したいです。 よろしくお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.6

幸いにして「別シート」に抽出したいとあるので (以下少し例を簡単にします) (1)サンプルデータ Sheet3のA1:A4に 東京都青梅市  山田 大阪市中央区  太田 東京都千代田区 小島 京都市左京区  上田 東京都あきる野市難波 (2)sheet4のA1に =IF(ISERR(FIND("東京都",Sheet3!A2)=0),"",Sheet3!A2)と入れA4まで複写する。 sheet4のB1に =IF(A1="","",Sheet3!B1) といれB4まで複写する。 (3)結果 東京都青梅市  山田 東京都千代田区 上田 東京都あきる野市難波 となります。 (4)そこでsheet4のA1:B4をA列で、且つ降順でソートします。 東京都千代田区 上田 東京都青梅市  山田 東京都あきる野市難波 と纏まります。

usubeni
質問者

お礼

試してみました。 確かに思うようになるのですが、 sheet4の式だけが入っているデータも、ソートされて最上部に空白セルがくるのが・・・ どうも、ありがとうございました。

usubeni
質問者

補足

失礼しました。 降順でならびかえでしたね。 これでうまくいきました。 しかし、並び替えするのが・・ どうも、ありがとうございました。

その他の回答 (5)

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.5

数式を使う方法はうまくいかなかったですか? 非常に「データベース的」なことをやろうとしているので、 Excelではどうしても限界があります。 このままがまんして数式やフィルタを使って処理するか、 Accessにデータを移して処理した方がいいと思います。 どうしてもと言うことならVBA(マクロ)を組むことになると思います。 ExcelVBAで・・・というタイトルで質問をたてると、 得意な方がいらっしゃいますので。

usubeni
質問者

お礼

たびたびどうもです。 Accessは、ないので、エクセルで、なんとかと・・ 数式は、 「数値」が結果として表示されるとこまでは、うまくいくようなのですが、 そのあとの =IF(ISNUMBERをつかうと、ファイルがみつからないというファイルを選択するダイアログBOXがでて、 うまくいかないのです。 どこか、まちがっているのかもしれませんが、 再度じっくりやってみます。 VBA・・・再度お願いするかもしれません。

noname#9485
noname#9485
回答No.4

フィルタオプションを使ったらできると思います 結果を出したいシート(シート2)に、例 A1のセルに地名(シート1の取り出したい表の取り出したい列のフィールド名)を入力、その下のセルA2のセルに東京都と入力しておく そして、A4のセルにセルポインタを置いて、  1.[データ]→[フィルタ]→[フィルタオプションの設定]  2.抽出先を「指定した範囲」に   リスト範囲をそのデータの入っている表を範囲指定   検索条件範囲で、条件を入れたA1~A2を範囲指定   抽出範囲を表示したいセルに(A4)を指定 これで地名が東京都のデータを取り出せます。 ただし、そのデータの入っている表は1列目には必ず、見出しが必要です。 そして、別のシートにある条件を入力した部分(A1)も同じ見出しを入力してなければいけません。

usubeni
質問者

お礼

どうも、ありがとうございます。 試してみたのですが、どうもうまくいかなくて。 再度ためしてみます。

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.3

数式でやらない方法もありますよ。 ただし、1行目は見出しの行であるとします。 1.データ-フィルタ-オートフィルタ 2.見出しのセルに▼マークがつきます。  B列の「地名」の見出しの▼をクリック 3.ドロップダウンリストの中から「オプション」を選択 4.抽出条件  「地名」ボックスに「東京都」を入力し、  条件のドロップダウンリストは「を含む」を選択。 5.東京都を含むデータだけが抽出される。 6.行選択ですべての行をコピー 7.貼り付けたいシートに切り替えて貼り付け

usubeni
質問者

お礼

どうも、ありがとうございます。 この方法は、最初に考えたのですが、 別シートに、自動的にコピーさせたいんです。 順次、追加したデータの中に、東京都があると、その都度 コピーするようなので・・・ データを入力した時点で、別シートにも表示させたいんです。

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.2

>その行すべてが、そのままシート2にコピーできればよいのですが ですから、  =IF(ISNUMBER(Sheet1!G1),Sheet1!A1,"")  =IF(ISNUMBER(Sheet1!G1),Sheet1!B1,"")  =IF(ISNUMBER(Sheet1!G1),Sheet1!C1,"")  =IF(ISNUMBER(Sheet1!G1),Sheet1!D1,"")  =IF(ISNUMBER(Sheet1!G1),Sheet1!E1,"")  =IF(ISNUMBER(Sheet1!G1),Sheet1!F1,"") ですよ。

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.1

たとえばB列(B1)の地名を検索して、 東京都という文字が含まれていたかをG列(G1)に表示するには  =SEARCH("東京都",B1,1) という式を入れます。 「東京都」という文字列が含まれていた場合、 「東京都」が何文字目にあったかという「数値」が結果として表示されます。 もし見つからなかった場合は、「#VALUE」というエラーを返します。 したがって、G列に数値が表示されているデータが、 「東京都」という文字を含んだデータですので、 これを別のシートに抽出すればいいです。 Sheet1のG1セルが数値の時だけ、Sheet1の氏名を、 Sheet2に表示する数式  =IF(ISNUMBER(Sheet1!G1),Sheet1!A1,"")

usubeni
質問者

補足

回答ありがとうございます。 どうもうまくいかないのですが、(もういちどトライしてみますが) シート1に「東京都」と入力された場合に、その行すべてが、そのままシート2にコピーできればよいのですが、 無理でしょうか?

関連するQ&A