1

誰かが私が簡単な仕事だと思ったことを手伝ってくれることを願っています。

多数の列を持つワークシート(Sheet1)があります。最初の2つは、それぞれ数字と名前です。これらの2つの列の後には、行ごとに異なる列がいくつかあります(たとえば、行1には10列、行2には4列など)。

2列の別のワークシート(Sheet2)があります。最初の列には、Sheet1内で検索したい値があります。問題は、値が最初の2列の後のSheet2の列内のどこにでもある可能性があることです(たとえば、ルックアップ値123、値は列13行6にある、またはルックアップ値456は列5行14にある)次に、 Sheet2の列2に配置されるSheet1の列1の行6。

Vlookup、Hlookup、Lookupを使用してみましたが、機能させる方法がわからないようです。

どんな助けでも大歓迎です

ありがとうガレス

4

1 に答える 1

2

... VBAソリューションを要求しなかったのは知っていますが、どうすればよいかを確認するために1つ作成したいと思いました...

エラーチェックなどを行わずに「迅速で汚れた」ものにしましたが、探しているものが得られます。

  Public Function FindInRange(Val As Variant, LookIn As Range, ColIndexNumber As Integer) As Range

  ' INPUTS:
     ' Val             = The Value you're looking for in your Range of cells
     ' Range           = The range of cells you're searching through
     ' ColIndexNumber  = The index of the column you want a value returned from within the row from which the value is found

  ' NOTE:
  ' This will only pull the first value matching your "Val" argument

  Dim FoundCell As Range

  Set FoundCell = LookIn.Find(what:=Val, LookAt:=xlWhole)

  If FoundCell Is Nothing Then
     Set FindInRange = Nothing
  Else
     Set FindInRange = Intersect(LookIn.Columns(ColIndexNumber), FoundCell.EntireRow)
  End If

  End Function

これをVBAモジュールに貼り付けると、その時点で他の関数と同じようにスプレッドシートから呼び出すことができます。

お役に立てれば :)

于 2013-03-20T18:19:10.613 に答える