0
カラム「A」をフィルタリングしました。カラム「A」の可視セルにvlookup式を適用する必要があります。どのように私はvbaでこれを達成するのですか?ワークシート内の合計行数は30,000、フィルタ処理された行数は100に閉じます。フィルタリングされたデータ/可視セルのみでvlookup式を適用する方法
カラム「A」をフィルタリングしました。カラム「A」の可視セルにvlookup式を適用する必要があります。どのように私はvbaでこれを達成するのですか?ワークシート内の合計行数は30,000、フィルタ処理された行数は100に閉じます。フィルタリングされたデータ/可視セルのみでvlookup式を適用する方法
Excel配列式を使用するだけで、VBAを使用せずにこの問題を解決できます。
しかし、この式をVBAで設定する場合は、Range.FormulaArrayプロパティを使用してください。
私たちは、この配列数式を使用している:あなたが囲む中括弧なしでそれを貼り付け、 + シフト + が(Windows)を入力しCtrlキーを押す必要がExcelでこれを使用するには
{=VLOOKUP(A2,IF(SUBTOTAL(3,OFFSET(Table2!$B$2:$B$5,ROW(Table2!$B$2:$B$5)-ROW(Table2!$B$2),0,1)),Table2!$B$2:$C$5,0),2,0)}
をかcmd + シフト + (Mac)を入力して配列式を有効にします。
この式はどのように機能しますか?
データシートTable2
は次のようになります。2月にのみ表示されるように
Column A Column B Column C
┌ ─ ─ ─ ┬ ─ ─ ─ ┬ ─ ─ ─ ┐
│ Month │ Store │ Revenue │
├ ─ ─ ─ ┼ ─ ─ ─ ┼ ─ ─ ─ ┤
│ Jan │ 1 │ 6.000 │
├ ─ ─ ─ ┼ ─ ─ ─ ┼ ─ ─ ─ ┤
│ Jan │ 2 │ 8.000 │
├ ─ ─ ─ ┼ ─ ─ ─ ┼ ─ ─ ─ ┤
│ Feb │ 1 │ 10.000 │
├ ─ ─ ─ ┼ ─ ─ ─ ┼ ─ ─ ─ ┤
│ Feb │ 2 │ 12.000 │
└ ─ ─ ─ ┴ ─ ─ ─ ┴ ─ ─ ─ ┘
データシートは、月によってフィルタリングされます。
結果があることのようになります。
Column A Column B
┌ ─ ─ ─ ┬ ─ ─ ─ ┐
│ Store │ Revenue │
├ ─ ─ ─ ┼ ─ ─ ─ ┤
│ 1 │ 10.000 │ Formula: {=VLOOKUP(A2,IF(SUBTOTAL(3,OFFSET(Table2!$B$2:$B$5,ROW(Table2!$B$2:$B$5)-ROW(Table2!$B$2),0,1)),Table2!$B$2:$C$5,0),2,0)}
├ ─ ─ ─ ┼ ─ ─ ─ ┤
│ 2 │ 12.000 │ Formula: {=VLOOKUP(A3,IF(SUBTOTAL(3,OFFSET(Table2!$B$2:$B$5,ROW(Table2!$B$2:$B$5)-ROW(Table2!$B$2),0,1)),Table2!$B$2:$C$5,0),2,0)}
└ ─ ─ ─ ┴ ─ ─ ─ ┘
私の答えは、このsolutionに基づいています。
シートをソートできますか? – Comintern
いいえデータが存在する順序は変更されません – Prakash
「Range( "A2:A100")を使用して可視セルをループする必要がありますSpecialCells(xlCellTypeVisible)正しい値を見つけてください。 –