我需要将某些单元格中的一些值与“静态”一堆其他值连接到 Excel 数组中...但我想避免使用 VBA,并且我需要一些也可以使用的东西较旧的 Excel 版本:至少 MSO Excel 2010。
我知道我可以在 MSO Excel 365 中轻松获得所需的内容,无需 VBA,只需使用HSTAK
函数即可,例如这样:=SUMPRODUCT(CONCATENATE(HSTACK($A$1,"Const1","Const2","Const3"),"/",K$2)*1)
(不要介意结果:这是我的真实公式的一个非常简化的代表版本,无论如何,它足以关注这里的问题。) HSTACK 可以让我获得我需要的“混合动态/静态数组”,并且它可以工作...但遗憾的是,仅适用于 MS Excel 365。正如我所说,我需要一种方法让事情也能在较旧的 Excel 版本(至少是 Excel 2010)上运行,所以...最终:寻找一个我自己无法弄清楚的替代方案...你能帮我吗?
PS 我尝试以这种方式不使用 HSTACK:=SUMPRODUCT(CONCATENATE({$A$1,"Const1","Const2","Const3"},"/",K$2)*1)
但它给出了错误!(当然,动态和静态值不能以这种方式连接在一起形成 Excel 数组......)
编辑:
我会接受 Mayukh Bhattacharya 的回答:他的方法可以为我完成这项工作,并且可以在 Excel 2010 中使用。不幸的是,唯一的缺点是,当您有很多动态+静态值需要连接在一起时,公式会变得很长(我在这里的示例中只放了 4 个,但是...想象一下当您有数百个时会发生什么...!)从长远来看,您可能面临着不得不处理Excel公式长度限制的风险。所以......我仍然希望有人可以改进它,并在未来提出更简洁的公式/方法。
PS 我自己尝试了一些方法(不幸的是,没有运气):由于最初的问题是由于在 Excel 数组中混合一个或多个动态值和静态值,所以我认为我可以修改 Mayukh Bhattacharya,将至少所有静态值放在单独的Excel 数组,我希望这种方式能够减少公式长度,并用类似的方法解决一半的“公式长度问题” =SUMPRODUCT(CONCATENATE(CHOOSE({1,2},$A$1,{"Const1","Const2","Const3"}),"/",K$2)*1)
,但它不起作用(我收到 #N/D 错误)所以,再次,如果有人可以改进或建议一种缩短公式的方法,请告诉我......谢谢!
应按
Excel 2010
以下方式工作:注意:退出编辑模式时可能需要按CTRL+ SHIFT+ 。ENTER