首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用VBA实现Excel中的复杂公式

使用VBA实现Excel中的复杂公式
EN

Stack Overflow用户
提问于 2017-06-01 22:11:24
回答 1查看 173关注 0票数 1

我正在编写vba代码,其中有各种深度的数据(斜率测斜仪),如下所示:

代码语言:javascript
复制
Depth   A0  A180    Checksum    B0  B180    Checksum

4.5 (-1256) 1258    2   (-394)  378 (-16)

4.5 (-1250) 1257    7   (-396)  376 (-20)

4.5 (-1257) 1257    0   (-400)  374 (-26)

Depth   A0  A180    Checksum    B0  B180    Checksum

5   (-1214) 1214    0   (-472)  459 (-13)

5   (-1215) 1212    -3  (-472)  455 (-17)

5   (-1216) 1211    -5  (-473)  455 (-18)

将显示未知数量的数据(取决于用户向此表传输了多少数据)

现在,我需要能够计算出A轴位移,B轴位移,以及由此得到的公式如下:

轴位移= ((A0-A180)/2)-((A0*-A180*)/2))*(constant/constant)

其中*是初始读数,它总是在指定深度上的第一行数据。

B轴位移= ((A0-A180)/2)-((A0*-A180*)/2))*(constant/constant)

其中*是初始读数,它总是在指定深度上的第一行数据。

结式= SQRT(A轴位移)^2+ (B轴位移)^2

我很难找到如何使用vba实现这一点的例子,因为在同一张表上会出现不同的深度(未知数),公式需要在每个新的深度出现时重新开始。

任何帮助/提示都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-01 23:33:39

我如何使用vba实现这一点,因为有不同的深度.

您仍然可以完全使用公式和简单的自动填充,因为该公式可以找到当前深度的第一次出现,并执行所有必要的计算,在标题行或空白行中留下空白。例如,您可以在第2行输入这些公式并填充所有行。

代码语言:javascript
复制
H2 (A Axis Displacement):
=IF(ISNUMBER($A2),0.5*(B2-C2-VLOOKUP($A2,$A:$F,2,0)+VLOOKUP($A2,$A:$F,3,0)), "")

I2 (B Axis Displacement):
=IF(ISNUMBER($A2),0.5*(E2-F2-VLOOKUP($A2,$A:$F,5,0)+VLOOKUP($A2,$A:$F,6,0)), "")

J2 (Resultant):
=IF(ISNUMBER($A2),SQRT(SUMSQ(H2,I2)),"")

附注:在位移公式中,我省略了(常数/常数)因子,因为它与答案无关,您可以轻松地将0.5因子乘以所需的任何因素。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44317892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档