是否有可能在公式中声明一个variables,并在Excel中使用相同的公式?

我有一个很棒的excel公式,

=CONCATENATE( IF( AND(LEN(A1)>3,LEN(A1)>=5),CONCATENATE( VLOOKUP(NUMBERVALUE(LEFT(RIGHT(A1,5),2)),rng,2)," হাজার "),IF( AND(LEN(A1)>3,LEN(A1)=4),CONCATENATE( VLOOKUP(NUMBERVALUE(LEFT(RIGHT(A1,4),1)),rng,2)," হাজার "),"")),IF(LEN(A1)>2,IF(NUMBERVALUE(LEFT(RIGHT(A1,3),1))>0,CONCATENATE(VLOOKUP(NUMBERVALUE(LEFT(RIGHT(A1,3),1)),rng,2),"শত "),""),""),IF(NUMBERVALUE(IF(LEN(A1)>1, RIGHT(A1,2), RIGHT(A1,1)))>0,VLOOKUP( NUMBERVALUE(IF(LEN(A1)>1, RIGHT(A1,2), RIGHT(A1,1))),rng,2,FALSE),"")) 

在这个公式中我不得不反复使用'A1'参考。 我需要一个function或类似的东西 –

 =DEFVAR(A1,'somevar',CONCATENATE( IF( AND(LEN(somevar)>3,LEN(somevar)>=5),CONCATENATE(....) 

所以我可以像这样使用“M9”单元上的公式

 =DEFVAR(M9,'somevar',CONCATENATE( IF( AND(LEN(somevar)>3,LEN(somevar)>=5),CONCATENATE(....) 

有没有办法做到这一点?

你的基本问题是“在公式中声明variables并将其用于相同的公式中”。

答案是否定的。

Excel中的任何公式都不允许声明variables并进一步使用它。 这是编程时的一种常见做法,不用说如何,因为在某个地方你已经写了你正在使用VBA!

现在让我告诉你,我们如何间接地使用Excel公式中的variables。

这是一个单元地址,作为一个variables。 其他的是命名范围,它像一个数组一样携带多个值。 此外,您还可以使用公式作为variables

让我来说一下,如何在单元格中编写一个公式,并在编程时将它命名为在任何公式中使用该名称。 一个简单的例子,我在这里给你看

写公式为A2,= if(A5> = 1000,Max(B2:B100),0),并将其命名为MYMAX。 然后在其他公式中,你可以调用它,= if(B2 =“A01”,MYMAX,“Nothing”)。

希望这有助于你意识到,为什么我们需要编程。

不,Excel公式不允许你在其中声明variables。

但是在这种情况下你可以做的是使用另一个存储LEN(A1)单元格,并在你的公式中使用它。 Excel非常聪明的计算周期将保证LEN(A1)在任何相关公式之前被评估。

基本上,你正在使用一个或多个其他单元格来保存“variables”。

这也使您的电子表格更易于维护。 如果可以,避免使用VBA; (1)版本控制困难,(2)由于安全问题,并非所有公司都允许使用.xlsm ,(3)VBA运行在单个线程中。