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

シート1の
A列に名前
B列に地名
C列に詳細
D列に備考欄
E列に電話番号
F列に携帯番号
-------------------------

B列の地名の中で、(たとえば)「東京都」があれば、
「東京都」のある行すべてを、シート2にコピーしたものを抜き出したいのですが、
お知恵を拝借したいです。
よろしくお願いします。

A 回答 (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列で、且つ降順でソートします。
東京都千代田区 上田
東京都青梅市  山田
東京都あきる野市難波
と纏まります。

この回答への補足

失礼しました。
降順でならびかえでしたね。
これでうまくいきました。

しかし、並び替えするのが・・

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

補足日時:2003/07/18 19:33
    • good
    • 0
この回答へのお礼

試してみました。
確かに思うようになるのですが、

sheet4の式だけが入っているデータも、ソートされて最上部に空白セルがくるのが・・・

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

お礼日時:2003/07/18 19:29

数式を使う方法はうまくいかなかったですか?



非常に「データベース的」なことをやろうとしているので、
Excelではどうしても限界があります。

このままがまんして数式やフィルタを使って処理するか、
Accessにデータを移して処理した方がいいと思います。

どうしてもと言うことならVBA(マクロ)を組むことになると思います。

ExcelVBAで・・・というタイトルで質問をたてると、
得意な方がいらっしゃいますので。
    • good
    • 0
この回答へのお礼

たびたびどうもです。

Accessは、ないので、エクセルで、なんとかと・・

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

VBA・・・再度お願いするかもしれません。

お礼日時:2003/07/17 21:46

フィルタオプションを使ったらできると思います



結果を出したいシート(シート2)に、例 A1のセルに地名(シート1の取り出したい表の取り出したい列のフィールド名)を入力、その下のセルA2のセルに東京都と入力しておく

そして、A4のセルにセルポインタを置いて、
 1.[データ]→[フィルタ]→[フィルタオプションの設定]
 2.抽出先を「指定した範囲」に
  リスト範囲をそのデータの入っている表を範囲指定
  検索条件範囲で、条件を入れたA1~A2を範囲指定
  抽出範囲を表示したいセルに(A4)を指定

これで地名が東京都のデータを取り出せます。

ただし、そのデータの入っている表は1列目には必ず、見出しが必要です。
そして、別のシートにある条件を入力した部分(A1)も同じ見出しを入力してなければいけません。
    • good
    • 0
この回答へのお礼

どうも、ありがとうございます。

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

お礼日時:2003/07/18 19:31

数式でやらない方法もありますよ。


ただし、1行目は見出しの行であるとします。

1.データ-フィルタ-オートフィルタ

2.見出しのセルに▼マークがつきます。
 B列の「地名」の見出しの▼をクリック

3.ドロップダウンリストの中から「オプション」を選択

4.抽出条件
 「地名」ボックスに「東京都」を入力し、
 条件のドロップダウンリストは「を含む」を選択。

5.東京都を含むデータだけが抽出される。

6.行選択ですべての行をコピー

7.貼り付けたいシートに切り替えて貼り付け
    • good
    • 0
この回答へのお礼

どうも、ありがとうございます。
この方法は、最初に考えたのですが、
別シートに、自動的にコピーさせたいんです。

順次、追加したデータの中に、東京都があると、その都度
コピーするようなので・・・
データを入力した時点で、別シートにも表示させたいんです。

お礼日時:2003/07/17 21:17

>その行すべてが、そのままシート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,"")
ですよ。
    • good
    • 0

たとえばB列(B1)の地名を検索して、


東京都という文字が含まれていたかをG列(G1)に表示するには
 =SEARCH("東京都",B1,1)
という式を入れます。

「東京都」という文字列が含まれていた場合、
「東京都」が何文字目にあったかという「数値」が結果として表示されます。
もし見つからなかった場合は、「#VALUE」というエラーを返します。

したがって、G列に数値が表示されているデータが、
「東京都」という文字を含んだデータですので、
これを別のシートに抽出すればいいです。

Sheet1のG1セルが数値の時だけ、Sheet1の氏名を、
Sheet2に表示する数式

 =IF(ISNUMBER(Sheet1!G1),Sheet1!A1,"")

この回答への補足

回答ありがとうございます。

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

補足日時:2003/07/17 20:23
    • good
    • 0

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