プロが教える店舗&オフィスのセキュリティ対策術

画像の左側の表から抽出して右側の表を作りたいです。
右側の表は別のシートに表示したいです。
フィルタを使わない方法を探しています。
左側の表にデータ入力し、条件が合うデータをその都度右側の表に表示したいです。

どのような方法がありますでしょうか?

「フィルタを使わずに抽出」の質問画像

A 回答 (2件)

思い切って、VBA案です。


それもフィルターオプションの機能を使っています。
シート名 データ
 A  B   C   D  E
番号 商品名 金額 個数 合計
・・・

別シート
 A  B   C   D  E
   商品名
   りんご
番号 商品名 金額 個数 合計  

と準備します。
別シートのシート名を右クリックしてVBエディターを起動

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$2" Then
Sheets("データ").Columns("A:E").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("B1:B2"), CopyToRange:=Range("A3:E3"), Unique:=False
End If
End Sub

をコピー、エディターを閉じる
B2セルの りんご、みかんなど商品名を入力して変更することで
ご希望のデータが抽出されます。

詳しくは、フィルターオプションで検索してみてください。
    • good
    • 0

フィルタオプションの設定(フィルタの詳細設定)で良さそうな気がするが、なんでダメなんでしょう?



【数式案1】
F1セルに 0
F2セルに =SUM(B2="りんご",INDEX(F:F,ROW()-1))
フィルハンドルダブルクリック

H2セルに
=IF(ROW(H1)>MAX(F:F),"",ROW(H1))
下へオートフィル

I2セルに
=IF($H2="","",INDEX($A:$E,MATCH($H2-1,$F:$F)+1,MATCH(I$1,$A$1:$E$1,0)))
右へ下へオートフィル

上記を踏まえて 【数式案2】
M2セルに
=INDEX($A$1:$E$11,SMALL(IF($B$1:$B$11="りんご",ROW($B$1:$B$11)),ROW(N1)),MATCH(M$1,$A$1:$E$1,0))
[Ctrl]+[Shft] +[Enter] で確定、配列数式。{ }で挟まれる
エラー処理なし、計算速度は遅い
「フィルタを使わずに抽出」の回答画像1
    • good
    • 0

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