我需要将某些单元格中的某些值与一堆“静态”的其他值合并到 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 错误)所以,如果有人可以改进或建议缩短这个公式的方法,请告诉我...谢谢!
答案1
以下Excel 2010
内容应该有效:
=SUMPRODUCT(CONCATENATE(CHOOSE({1,2,3,4},$A$1,"Const1","Const2","Const3"),"/",K$2)*1)
笔记:退出编辑模式时可能需要按CTRL+ SHIFT+ 。ENTER