如何以可读的方式重写excel公式?

0x9*_*x90 14 excel vba excel-vba excel-formula

我有这样一个公式的Excel文件:

=IF(OR(ISERROR(G16),ISERROR(G17)),X16,IF(OR(G16="xxx",G16="yyy",G16="zzz"),Y16,IF(G16="333","N\A",IF(G17="333",Z16,IF(D17="",IF((HEX2DEC(W$10)-HEX2DEC(W16))/VLOOKUP(F16,$M$36:$N$41,2,FALSE)<0,0,(HEX2DEC(W$10)-HEX2DEC(W16))/VLOOKUP(F16,$M$36:$N$41,2,FALSE)), IF((HEX2DEC(W17)-HEX2DEC(W16))/VLOOKUP(F16,$M$36:$N$41,2,FALSE)<0,0,(HEX2DEC(W17)-HEX2DEC(W16))/VLOOKUP(F16,$M$36:$N$41,2,FALSE)))))))

我想简化它们,以便以更易读的方式编写.

  • 我可以缩进的方式编辑/编写Excel公式吗?
  • 我可以做什么样的简化?
  • 我应该使用VBA脚本而不是Excel的公式吗?

Dic*_*ika 10

您可以在公式栏中使用Alt + Enter来使公式成为多行.遗憾的是,没有标签只是空格,因此创建和编辑变得乏味.也可以看看

http://www.dailydoseofexcel.com/archives/2005/04/01/excel-formula-formatter/

  • 为什么这不是选定的答案?似乎回答“我可以以缩进方式编辑/编写 Excel 公式吗?” 提问最好。 (2认同)

Jam*_*ull 5

命名一些您引用的单元格可能会使整个事物更具可读性


小智 4

作为使用辅助列的示例,您可以使用以下内容缩短公式

[A1]=VLOOKUP(F16,$M$36:$N$41,2,FALSE)

[B1]=HEX2DEC(W$10)

[C1]=HEX2DEC(W16)

[D1]=HEX2DEC(W17)

然后大公式被缩短为

=IF(OR(ISERROR(G16),ISERROR(G17)),X16,IF(OR(G16="xxx",G16="yyy",G16="zzz"),Y16,IF(G16="333","N\A",IF(G17="333",Z16,IF(D17="",IF((B1-C1)/A1<0,0,(B1-C1)/A1), IF((D1-C1)/A1<0,0,(D1-C1)/A1))))))

当使用 DATE 或 NOW 等易失性函数时,当结果相同时,您不想为每个单元格重新计算,这尤其有效。

无论它是否更具可读性,也许不是,但您可以使用适当的注释来标记列标题