VLOOKUP機能の改善

内容

パラシュートを適切に梱包するには?

利点。 第 2 版、改訂。

次の注文表があるとします。

VLOOKUP機能の改善

たとえば、Ivanov の 10256 回目の注文の金額や、Petrov が XNUMX 回目の取引をいつ実行したかを知る必要があります。 組み込みの VLOOKUP 関数は、テーブル内で最初に出現する姓のみを検索できるため、役に立ちません。 「注文番号 XNUMX の管理者は誰ですか?」などの質問。 また、未回答のままになります、tk。 組み込みの VLOOKUP は、検索列の左側の列から値を返すことができません。

これらの問題はどちらも一挙に解決されます。最初の出現だけでなく、一般的には N 番目の出現を探す独自の関数を作成してみましょう。 さらに、任意の列で検索して結果を生成することができます。 それを VLOOKUP2 としましょう。 

Alt キーを押しながら F11 キーを押すか、メニューから選択して、Visual Basic Editor を開きます。 サービス – マクロ – Visual Basic Editor (ツール — マクロ — Visual Basic Editor)、新しいモジュールを挿入します (メニュー インサート – モジュール)、この関数のテキストをそこにコピーします。

Function VLOOKUP2(Table As Variant, SearchColumnNum As Long, SearchValue As Variant, _ N As Long, ResultColumnNum As Long) Dim i As Long, iCount As Long Select Case TypeName(Table) Case "Range" For i = 1 To Table.Rows .Count If Table.Cells(i, SearchColumnNum) = SearchValue Then iCount = iCount + 1 End If If iCount = N Then VLOOKUP2 = Table.Cells(i, ResultColumnNum) Exit For End If Next i Case "Variant()" For i = 1 To UBound(Table) If Table(i, SearchColumnNum) = SearchValue Then iCount = iCount + 1 If iCount = N Then VLOOKUP2 = Table(i, ResultColumnNum) Exit For End If Next i End 選択 End 関数  

Visual Basic Editor を閉じて、Excel に戻ります。

今から 挿入 – 関数 (挿入 — 関数) カテゴリー内 ユーザー定義 (ユーザー定義の) VLOOKUP2 関数を見つけて使用できます。 関数の構文は次のとおりです。

=VLOOKUP2(テーブル; 検索する列の数; 検索値; N; 列の数から取得値まで)

標準関数の制限は、私たちにとって障害ではありません。

VLOOKUP機能の改善

PS 閉じた本を検索できるように機能を改善してくれた The_Prist に感謝します。

  • VLOOKUP 関数を使用して、あるテーブルから別のテーブルへのデータの検索と置換
  • INDEX 関数と MATCH 関数を使用した「左 VLOOKUP」

 

コメントを残す