を下にドラッグしたときに私は、私はシンプルなものを眺めていると思う作品UDFを作成します。 =INDEX($A$1:$A$5,AGGREGATE(15,6,ROW($B$1:$B$5)/($B$1:$B$5=1),ROW(1:1)))
(ScottCraner's comment in this answerを参照してください私は、次のUDFを作成した</p> <p>私の考えは、以下よりセットアップが簡単ですExcelの関数を作成することです...
実際にその機能)のために:
Public Function findUnique(ByVal indexRange As Range, matchRange As Range, matchVal As Long)
' Trying to create a dynamic function of:
' =INDEX($A$1:$A$5,AGGREGATE(15,6,ROW($B$1:$B$5)/($B$1:$B$5=1),ROW(1:1)))
findUnique = Evaluate("=Index(" & indexRange.Address & ",AGGREGATE(15,6,Row(" & matchRange.Address & _
")/(" & matchRange.Address & "=" & matchVal & "),Row(" & ActiveCell.Row & ":" & ActiveCell.Row & ")))")
End Function
そして、それほとんど作品。ただし、最初の行からドラッグすると、データは更新されません。私は、正しいデータを表示するために取得するには、「リトリガー」にセルに関数をクリックする必要があります。
(列Dは、式で、正しく入力しました)。
しかし、セルを再入力せずに自動的に更新する方法を教えてください。
私はまた、第四変数追加しようとしました:私が持っている(また、どのように私は、ActiveCell.Row
避けるん =findUnique($A$1:$A$5,$B$1:$B$5,1,ROW())
しかし、それだけで#VALUE
エラーに
を返します。
Public Function findUnique(ByVal indexRange As Range, matchRange As Range, matchVal As Long, curRow as Long)
findUnique = Evaluate("=Index(" & indexRange.address & ",AGGREGATE(15,6,Row(" & matchRange.address & _
")/(" & matchRange.address & "=" & matchVal & "),Row(" & curRow & ":" & curRow & ")))")
End Function
と同様に入力をActive
何も使用しないように私の頭に穴を開けました...)
ありがとうございました!
を試してみてください - あなたはそれがあなたをdingingことだ表示されます。しかし、まだ解決策を見つけていない。 – OldUgly
@OldUgly私はそれを知っていた!私はそれが理由だと思ったが、なぜ 'Row()'を使うとエラーになるのか理解できない。 – BruceWayne