このようなシートがあるとします。

http://figuami.web.fc2.com/excel.jpg

B2に「あ」と入力すると5、365、366行目のみ表示する方法を教えてください。
簡単だと思いますが、ど忘れして調べるのが面倒なので・・・。

回答の条件
  • 1人20回まで
  • 登録:
  • 終了:2007/08/29 15:53:41
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:taknt No.5

回答回数13539ベストアンサー獲得回数1198

ポイント20pt

>「その文字を含む行すべて」というのはできないのでしょうか。

If a = Left(c, Len(a)) Then

これで 先頭一致を 判断しています。

これを

If InStr(c, a) > 0 Then

にすれば その文字列を含むとなります。

id:plugbot

ばっちりできました。

VBAについてはあとでゆっくり自学していきます。ありがとうございます。

2007/08/29 15:51:51

その他の回答4件)

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198

ポイント20pt

すみません。


http://figuami.web.fc2.com/excel.jpg を 開こうとすると

403 Forbidden

あなたには、このファイルにアクセスする権限がありません。

となります。

それで

>B2に「あ」と入力すると5、365、366行目のみ表示する方法を教えてください。

ですが、マクロを用いて やればいいのでしょうか?

それとも 関数のみでしょうか?

関数だと

=IF(B2="あ","表示する","")

というようなのを それぞれの行に入れたらいいのかなと思います。

id:plugbot

失礼しました。外部から呼び出せないみたいなので修正します。

http://figuami.web.fc2.com/excel.html

たぶん関数は使わずにできると思うのですが・・・。

フィルタか集計とかそんなもので。

2007/08/29 12:51:37
id:taknt No.2

回答回数13539ベストアンサー獲得回数1198

ポイント20pt

http://www.eurus.dti.ne.jp/~yoneyama/Excel/filter.htm

オートフィルタにして

オプションで

あ で始まる

という設定で抽出すれば 質問のようになります。

が、B2に入れただけで そうなる方法は マクロ(VBA)を使うしかないです。

id:plugbot

ではVBAを使う方法を教えていただけないでしょうか。

投稿回数制限を変更しました。気づくの遅くてすみません。

2007/08/29 13:37:41
id:taknt No.3

回答回数13539ベストアンサー獲得回数1198

ポイント20pt
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row = 2 And Target.Column = 2 Then
        a = Range("B2")
        For b = 3 To 65536
            c = Range("B" & b)
            If c <> "" Then
                If a = Left(c, Len(a)) Then
                    Rows(b & ":" & b).EntireRow.Hidden = False
                Else
                    Rows(b & ":" & b).EntireRow.Hidden = True
                End If
            End If
        Next b
    End If
End Sub

B2に入れたら該当する行を 表示、ほかは 非表示にします。

マクロは それぞれのシートのほうに記述します。

id:plugbot

どこに書けばよいかわかりません。VB editerを開いてどこかに書くのですか?

2007/08/29 14:21:55
id:taknt No.4

回答回数13539ベストアンサー獲得回数1198

ポイント20pt

プロジェクトの一覧が 左側に 並んでいると思いますが、

そこの使用したいシートをダブルクリックして 開いて そこに貼り付ければいいです。

Sheet1だったら Sheet1

貼り付けたら、Sheets1のB2に何か文字を入れて エンターとします。

すると その文字と先頭一致するセルの行が表示になり

それ以外が 非表示となります。

また、何もないセルは 無視されます。

id:plugbot

できました!

>その文字と先頭一致するセルの行が表示になり

「その文字を含む行すべて」というのはできないのでしょうか。

2007/08/29 15:00:32
id:taknt No.5

回答回数13539ベストアンサー獲得回数1198ここでベストアンサー

ポイント20pt

>「その文字を含む行すべて」というのはできないのでしょうか。

If a = Left(c, Len(a)) Then

これで 先頭一致を 判断しています。

これを

If InStr(c, a) > 0 Then

にすれば その文字列を含むとなります。

id:plugbot

ばっちりできました。

VBAについてはあとでゆっくり自学していきます。ありがとうございます。

2007/08/29 15:51:51
  • id:airplant
    No.2でtakntさんは、下記のように書かれていますが、マクロを使わなくても条件指定のフィルターはできますので、参考のため掲載しておきます。

    >B2に入れただけで そうなる方法は マクロ(VBA)を使うしかないです。

    http://figuami.web.fc2.com/excel.html
    の例で行くと、次のようにすればいいですね。

    Step1.タイトル行をデータの上にコピーしておく(1行目を4行目に貼り付け)

    Step2.データ→フィルタ→フィルタオプションの設定

    Step3.「リスト範囲」に元データ範囲$A$4:$C$366を指定

    Step4.「検索条件範囲」に検索条件を書いた範囲を指定$A$1:$C$2

    Step5.【OK】ボタンを押す(先頭にある「抽出先」は、デフォルトの「選択範囲内」ラジオボタンになっていること)

    Step6.目的のものが出る。条件変更するときは、再度フィルタオプションの設定を行う


    こちらのほうが、各種条件を指定できて、使い勝手いいと思います。

    例えば価格がいくら以上も条件に含めたり、「あ」だけでなく「い」で始まるものも対象にしたり、自由に設定できます。

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません