gpt4 book ai didi

excel - 在 Excel 中创建自定义查找函数时遇到问题。匹配和连接范围的问题

转载 作者:行者123 更新时间:2023-12-04 20:20:51 25 4
gpt4 key购买 nike

我在处理我的大型电子表格时遇到了一些问题。我将大量原始数据引入数据表,然后对数据进行多次查找。使用我想出的内置函数

=IF(ISNA(INDEX(Data!$L$7:$L$1100,MATCH(Data!$I$2&$B$199&$B29&Data!$J$5,Data!$K$7:$K$1100&Data!$J$7:$J$1100&Data!$I$7:$I$1100&Data!$N$7:$N$1100,0))),"0",INDEX(Data!$L$7:$L$1100,MATCH(Data!$I$2&$B$199&$B29&Data!$J$5,Data!$K$7:$K$1100&Data!$J$7:$J$1100&Data!$I$7:$I$1100&Data!$N$7:$N$1100,0)))

不漂亮!基本上,它使用 4 个变量进行两次相同的查找,并将它们与 4 个连接数组进行匹配,然后使用该点作为我想要的值的索引。

我在每行 4 张纸和每张纸 96 行中有 8 个(略有不同)。编辑它们很痛苦!

由于本月数据集大幅增长,外部波段 (x1100) 已被超越(经验教训,大是不够的)。不幸的是,该功能的限制不允许我使用 L:L 或类似的任何有用的东西。

我尝试将代码重写为用户定义的函数,我可以在其中输入 4 个变量并获得答案,但是在组合数组时失败了。

我已经在原始函数名称中给出了上面列出的范围以使事情变得更容易(并将它们扩展为使用更广泛的范围值),因此我可以重写所有函数以仅使用命名范围,但这仍然让我陷入困境如果我需要更改代码。

这是我到目前为止所拥有的:
    Function Windows_Util(itma As String, env As String)

v = "Windows Server" & env & itma & ""
r = Concat(Range("Utilchassis"))
r = r & Concat(Range("Utilenv"))
r = r & Concat(Range("UtilITMA"))
r = r & Concat(Range("UtilOS"))

m = WorksheetFunction.Match(v, r, 0)

i = WorksheetFunction.Index(Range("Utilavg"), m)


If WorksheetFunction.IsNA(i) Then
Windows_Util = 0
Else
Windows_Util = i
End If

End Function


Function Concat(myRange As Range, Optional myDelimiter As String)

Dim r As Range

Application.Volatile

For Each r In myRange
If Len(r.Text) Then
Concat = Concat & IIf(Concat <> "", myDelimiter, "") & r.Text
End If
Next

End Function

这不行!它不仅连接不正确(每个范围单独连接,而不是逐行组合),而且它不喜欢其中一个查询中的某种类型。 (调试这些东西并不容易,因为函数实际上完成了(它没有任何语法错误),所以我没有可以使用的内置步骤。

非常感谢任何帮助。

希望我已经提供了足够的细节来理解我正在尝试做的事情。

干杯,

史蒂夫

最佳答案

怎么样:

r = Range("Utilchassis,Utilenv,UtilITMA,UtilOS")

这似乎与您的 Concat 功能相同

关于excel - 在 Excel 中创建自定义查找函数时遇到问题。匹配和连接范围的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/429964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com