アプリ版:「スタンプのみでお礼する」機能のリリースについて

今、以下のようなデータが並んでいます。

A列----B列
f-1----笙磬同音
t-1----鬱金香
s-1----水馬
t-2----茉莉花
t-3----方頭鯛
s-2----羊蹄
f-2----蓴羹鱸膾
s-3----時鳥
f-3----群龍無首
s-4----香魚
f-4----狷介固陋
t-4----含羞草
s-5----飫肥
s-6----河骨
f-5----寡聞小見
t-5----雛罌粟
s-7----霽月
t-6----膃肭臍
o-1----霙
f-6----漿酒霍肉

A列にはID、B列には漢字のデータが入ってます。
この中から、「f-*(ワイルドカード)」のデータのみを抽出したいのです(>_<)

A列----B列------------C列
f-1----笙磬同音-------笙磬同音
t-1----鬱金香---------    
s-1----水馬-----------
t-2----茉莉花---------
t-3----方頭鯛---------
s-2----羊蹄-----------
f-2----蓴羹鱸膾-------蓴羹鱸膾
s-3----時鳥-----------
f-3----群龍無首-------群龍無首
s-4----香魚-----------
f-4----狷介固陋-------狷介固陋
t-4----含羞草---------
s-5----飫肥-----------
s-6----河骨-----------
f-5----寡聞小見-------寡聞小見
t-5----雛罌粟---------
s-7----霽月-----------
t-6----膃肭臍---------
o-1----霙-------------
f-6----漿酒霍肉-------漿酒霍肉

と、「A列に“f-*”のIDを持つB列のデータ」のみを、C列に抽出し、さらに抽出されなかったC列の空白のセルを削除し、

D列
笙磬同音
蓴羹鱸膾
群龍無首
狷介固陋
寡聞小見
漿酒霍肉

と、連続させて並べたいのです。
一連の過程を素早く処理する方法がありましたら、ご指導いただきたい次第です。
よろしくおねがいします<m(__)m>

A 回答 (6件)

(1)


  C1に
  =IF(LEFT(A1,2)="f-",B1,"")
  といれてコピーすれば、C1の値は
  A1の左から2文字が"f-" なら B1、違えば 空("")になります。

  これをC列全体にコピーするとC列のできあがりです。

(2)表全体を選んで データ」フィルタ」オートフィルタ
  として、ドロップダウンリストから(空白以外のセル)
  を選ぶとC列が空でないところだけ表示されます。

(3)いったんC列を下まで選択します。
   このままコピーすると空白行が含まれてしまうので
  「可視セルの選択」ボタン(ない場合は下の補足参照)
  もしくは「Alt」+「;(セミコロン)」で
  選択範囲を見えているところだけに限定しておいてから、
  コピーします。

(4)表全体を選んで データ」フィルタ」オートフィルタ
   として、オートフィルタを解除します。
  (もしくはオートフィルタのドロップダウンリストから
   すべて表示、を選びます)

(5)D1 を選んでペーストします。

(6)C列に式があるままだとまずい場合
   C列を選択してコピー、編集メニューの
  「形式を選択してペースト」で「値」のみを
  ペーストしておきます。

  (他にコピーペーストした場合に変な値に変わらずにすみます。)


------------------------------------------------
※ 補足
 「可視セルの選択」ボタンを次のようにして
 使えるようにしておきますと便利でしょう。

 表示」ツールバー」ユーザ設定の「コマンド」タブで
 分類「編集」の「可視セルの選択」のコマンドを
 ツールバーの好きなところにドラッグします。
------------------------------------------------

★ C列はいらないなら、次のようにした方が速いです。

(1)は とばして、

(2)表全体を選んで データ」フィルタ」オートフィルタ
   として、ドロップダウンリストから(オプション)を
   を選び、「f-」「から始まる」と条件をいれると、
   C列が空でないところだけ表示されます

(3)で選ぶのはB列になりますが以下は基本的に同じ
(6)は不要になります。
    • good
    • 0
この回答へのお礼

返信遅くなってすいません(>_<)
何とかできました!
(3)~(4)辺りで、少し躓いたのですが、可視セルのみを選択した後「コピー→D1に貼りつけ→オートフィルタを解除」とすると、D列に希望のデータが連続で並びました!
最初「可視セル選択→コピー→オートフィルタを解除→D1に貼りつけ(しようとしたけど出来ない!?)」と、戸惑ってしまいましたが・・・(^_^;)
貴重なご指導ありがとうございます!

お礼日時:2009/06/11 22:22

[オートフィルタ]で f で始まるレコードを抽出→可視セルの選択→[コピー]→[貼り付け]

    • good
    • 0
この回答へのお礼

そうですよね、「可視セルの選択」というのがネックでした、アドバイスありがとうございます(>_<)

お礼日時:2009/06/11 22:24

おまけで「フィルタオプションの設定」を使った方法もついでに覚えておくとよいですよ。

(D列だけですが)
リスト範囲 $A$1:$B$21
検索条件範囲 $F$1:$F$2
抽出範囲 $D$1
参考まで
「Excelの質問です。A列に「●●」を含」の回答画像3
    • good
    • 0
この回答へのお礼

うまくいきました!
はぁ~こういうやり方もあったのですね、勉強になります<m(__)m>

お礼日時:2009/06/11 22:33

[回答番号:No.3]の場合、次のようにしてもOKです(やや高級?)


セル F1 を空白(何も入力しない)
セル F2 に式 =LEFT(A2,1)="f" を入力
    • good
    • 0

マクロでよければ



Sub test01()
With Sheets("Sheet1")
For Each c In .Range(.Range("A1"), .Range("A1").End(xlDown))
If c.Value Like "f-*" Then
i = i + 1
.Cells(i, "D").Value = c.Offset(0, 1).Value
End If
Next
End With
End Sub

でいかがでしょう?
「Excelの質問です。A列に「●●」を含」の回答画像5
    • good
    • 0

No5 merlionXXです。


先ほどの回答ではC列へのとびとびでの抽出を省略してしまいまいsたが、もしC列も表示が必要であれば以下のようにしてください。

Sub test02()
With Sheets("Sheet1")
For Each c In .Range(.Range("A1"), .Range("A1").End(xlDown))
If c.Value Like "f-*" Then
c.Offset(0, 2).Value = c.Offset(0, 1).Value
i = i + 1
.Cells(i, "D").Value = c.Offset(0, 1).Value
End If
Next
End With
End Sub
    • good
    • 0
この回答へのお礼

いつも私のExcelの質問に回答していただきありがとうございます!
回答していただいた2つのマクロ、どちらも実行してみたところ、どちらも上手くいきました!
こんなに簡単に「データ抽出→並べ替え」が出来るとは・・・マクロを書かせたらmerlionXXさんの右に出るものはいませんね、恐れ入りました(^_^;)

お礼日時:2009/06/11 22:47

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