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

たとえば、

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

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

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

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

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

A 回答 (2件)

同じ質問が結構よく出てますが、そんなに初歩的でもありません


別シートの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行までとしていますが、必要に応じて変更して下さい
    • good
    • 91
この回答へのお礼

ありがとうございます!教えていただいた方法で見事再現ができました。
(ちなみに同一シート内で抽出したかったので、
A1部分を相当するセル番号に置き換えたら無事にできました)

けっこう複雑な式なんですね・・・。
昨日からずっと悩んでいたので助かりました。
ありがとうございました。

お礼日時:2007/07/26 14:30

> 抽出するだけならオートフィルターでもできますが、


> 抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

では、オートフィルターで抽出したものをコピーし、フィルターをもとにもどしてから別の場所に貼り付けたら?
マクロでも可能ですが。
    • good
    • 14
この回答へのお礼

それでは手作業になってしまいますよね。
元の表を更新するたび、抽出結果の方も自動的に反映されるようにしたいのです。
マクロを使えば可能なのでしょうか?

お礼日時:2007/07/26 13:40

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

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

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

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

Q異なるブック間で <条件に合う行>の<必要列だけ>を自動コピー 自動更新

book1へデータを入力することで、book2へ必要データのみ自動更新したいのです。
自動更新したいデータの条件は、B列(区分)で文字が入力されている行の 必要列(項目)だけです。
book2はそのままHPへデータを送信するので、作業列は作れません。
どなたかご教示いただけますでしょうか。
もしマクロを使うようでしたら、経験が無いので作業方法は詳しくお願いしたいのです。
お手数をおかけいたしますが、宜しくお願いいたします。

Aベストアンサー

手作業ですが、エクセルのフィルターオプションの機能をご存知でしょうか。
準備
Book1の一行目の項目部分をBook2にコピー
不要な列を削除
更に右側にでも 区分 をコピーして配置
その下に ="<>" と入れておく

フィルターオプションの作業
Book1、Book2を開いておく
Book2から操作
リボン データ の中央ほどにある 詳細設定 をクリック
指定した範囲に チェック
リスト範囲 Book1のA~データのある範囲
検索条件範囲 区分を入れたセルと ="<>" のセル
抽出範囲  Book2の項目を入れている一行目
OK ボタンを実行すれば、Book2で指定した項目で 区分が空白でない行が表示されます。

詳しくは、
http://www4.synapse.ne.jp/yone/excel2010/excel2010_filter21.html
等を産駒にして勉強してみて下さい。

毎回操作が面倒なら、マクロの記録でコードが自動で作成できます。
次回からは、ボタンをクリックするだけで上記の操作が実行されるようになります。

Q元表に入力することで <条件に合う行>の<必要項目列>だけを別ブックへ自動更新

以前同じ質問をして、エクセルのフィルタオプションの機能をご紹介いただきました。
その節はありがとうございました。
とても便利な機能でしたが、項目名に同じものがあり(その他)、データがうまく反映されませんでした。申し訳ございません。再度ご質問させていただきますので、よろしくお願いいたします。

ブック1の元表にデータを入力して更新することで、条件に合った行(B列に文字が入力されている行)の必要項目(ブック2の2列目に必要項目のみコピー済み)を、別ブック(book2)へ自動的に更新させたいと思っています。
book2の表はそのままHPへデータを送信するので、作業列は作れません。

何か良い方法をご存じの方いらっしゃいましたら、ご教示ください。
お手数をおかけいたしますが、宜しくお願いいたします。

Aベストアンサー

ブック1のいちばん右の列に作業列を追加し、追加した列を仮にY列とします
Y1セルに 0、
Y2セルに =SUM(B2<>"",INDEX(Y:Y,ROW()-1))
下へオートフィル

概念だけですので別ブックに見立てた同一シートで説明します
AA3セルから連番(別ブックのA列に該当)

AB3セルに
=IF(MAX($Y:$Y)<$AA3,"",INDEX(B:B,MATCH($AA3-1,$Y:$Y)+1)&"")
右へ下へオートフィル
(MATCHの部分が冗長で作業列にしたいところです)
数値も文字列(数字)になります

項目の合わないところは、その3行目をクリックして、[Ctrl]+[Shift]+[↓]で選択し
[Ctrl]+[-」セルの削除 ●左方向にシフト させます

連番までは自動更新としていませんのであしからず

Qエクセルの重複チェックに関する質問です! Sheet1のf列に りんごを育てよう みかんを食べよう

エクセルの重複チェックに関する質問です!

Sheet1のf列に
りんごを育てよう
みかんを食べよう
なしをむこう
さくらんぼを売ろう
パイナップルを切ろう

Sheet2のg列に
りんごを食べよう
みかんをむこう
なしをむこう
ぶどうを植えよう
ようかんをきろう

という文字列が入っているとします。

このとき、sheet2のg列の値がsheet1f列にある文字を3文字以上含む場合、sheet2のa列に「●」と書き込むような関数もしくはマクロを入れたいのですが可能でしょうか?

お手数ですが、ご教示いただける方をお待ちしております!

Aベストアンサー

とりあえずこんな感じでいかがでしょうか?

Sub Sample()

Dim 元行 As Long
Dim 先行 As Long

Sheets("Sheet2").Select
For 元行 = 1 To Sheets("Sheet1").Cells(Rows.Count, 6).End(xlUp).Row
For 先行 = 1 To Cells(Rows.Count, 7).End(xlUp).Row
If Left(Cells(先行, 7).Value, 3) = Left(Sheets("Sheet1").Cells(元行, 6).Value, 3) Then
Cells(先行, 1).Value = "●"
End If
Next
Next

End Sub

Qエクセル関数式。A列最後尾行の他列の値を抜き出す

初めまして、よろしくお願いします。
     A  B  C  
1    赤  青  黄  
2 
3   
4    1  3  2  
5    9  1  3  
・    ・  ・  ・  
・    ・  ・  ・   
112  4  6  1  
113  7  7  5  
114     9  1    
115        2  
116        0    

 という表があります。
 この表の最後尾はA113ですので、B113の7を、C113の5の値を抜き出す関数式を探しております。応用が利くように、最後尾行113のみではなく、113±αの値を抜き出す補足をいただければ大変助かります。よろしくお願いします。

Aベストアンサー

A列最後尾=INDEX(A$2:A$10000,MATCH(MAX($A$2:$A$10000)+1,$A$2:$A$10000,1),1)
B列最後尾=INDEX(B$2:B$10000,MATCH(MAX($A$2:$A$10000)+1,$A$2:$A$10000,1),1)
C列最後尾=INDEX(C$2:C$10000,MATCH(MAX($A$2:$A$10000)+1,$A$2:$A$10000,1),1)

A列最後尾±α=INDEX(A$2:A$10000,MATCH(MAX($A$2:$A$10000)+1,$A$2:$A$10000,1)±α,1)
B列最後尾±α=INDEX(B$2:B$10000,MATCH(MAX($A$2:$A$10000)+1,$A$2:$A$10000,1)±α,1)
C列最後尾±α=INDEX(C$2:C$10000,MATCH(MAX($A$2:$A$10000)+1,$A$2:$A$10000,1)±α,1)

Q15/7/22 と入力すると 2015/7/22 なる (エクセル)

エクセルで日付の入力を和暦二桁で行いたいのですが、西暦に置き換わってしまいます。

直す方法はないのでしょうか?

Windows XP
Excel2000

を使っています。

Aベストアンサー

こんにちは。maruru01です。

そういう仕様ですので、無理です。
「H15/7/22」
と和暦を表す文字(昭和はS、大正はT、明治はM)を付けると出来ます。


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

人気Q&Aランキング

おすすめ情報