是否可以在公式中声明变量并将其用于excel中的相同公式?

时间:2017-12-11 04:50:18

标签: excel excel-formula

我有一个很棒的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'一次又一次地参考。 我需要一个函数或类似的东西 -

=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(....) 

有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:1)

您的基本排名是,"在公式中声明变量并将其用于相同的公式"。

答案是否定的。

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

现在让我告诉您我们如何间接使用Excel公式中的变量。

它是一个作为变量的单元格地址。其他是命名范围,它携带多个值,如数组。您还可以使用公式作为变量

让我说一下,在单元格中编写一个公式并命名它,并在任何公式中使用该名称,就像我们在编程时调用过程一样。我在这里向您展示了一个简单的例子

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

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

答案 1 :(得分:1)

不,Excel公式不允许您在其中声明变量。

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

基本上,你正在使用一个或多个其他单元来保存"变量"。

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