gpt4 book ai didi

Excel函数查找字符串表达式的 "depth"?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:59:19 27 4
gpt4 key购买 nike

我有一个 Python 算法,它基本上可以帮助找到函数的“深度”:

f(a) has a depth of 1
f(g(h(a,b,c),d)),e) has a depth of 3

伪算法是这样的:

Run through all the characters from left to right
create a variable "depth"
for each open parenthesis increment depth
for each closing parenthesis decrement depth
At the end, the depth of the expression was the max value taken by the variable depth.

我想知道是否可以在不使用 VBA 的情况下在 Excel 中实现这样的逻辑。

最佳答案

尝试以下UDF()

Public Function Depth(r As Range) As Long
Dim v As String, CH As String
Depth = 0
v = r.Text
kount = 0

For i = 1 To Len(v)
CH = Mid(v, i, 1)
If CH = "(" Then kount = kount + 1
If CH = ")" Then kount = kount - 1
Depth = Application.WorksheetFunction.Max(kount, Depth)
Next i
End Function

用户定义函数 (UDF) 非常易于安装和使用:

  1. ALT-F11 调出 VBE 窗口
  2. ALT-IALT-M 打开一个新模块
  3. 粘贴内容并关闭 VBE 窗口

如果您保存工作簿,UDF 将随之保存。如果您使用的是 2003 之后的 Excel 版本,则必须保存文件为 .xlsm 而不是 .xlsx

删除 UDF:

  1. 如上调出 VBE 窗口
  2. 清除代码
  3. 关闭 VBE 窗口

从 Excel 使用 UDF:

=深度(A1)

要了解有关宏的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

有关 UDF 的详细信息,请参阅:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

必须启用宏才能工作!

enter image description here

关于Excel函数查找字符串表达式的 "depth"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30127085/

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