如何使用 Excel lambda 和/或数组公式生成两个数组的叉积?

如何使用 Excel lambda 和/或数组公式生成两个数组的叉积?

作为使用 Excel 的后来者lambda,我非常兴奋地看到它们如何简化我公司的表格。

我们希望简化的一个领域:我们有一个如下所示的值列表:

站点 价值观
站点1 值1
站点2 值2
站点3 值3
站点4
站点5

我很想拥有一些 Excel 代码,无论有多少个站点和值,都能够生成一个跨积表,例如。

地点 价值
站点 1 值 1
站点 1 值 2
站点 1 值 3
站点 1 值 4
... ..
站点 2 值 1
站点 2 值 2
站点 2 值 3
站点 2 值 4

有没有办法直接在 Excel 公式中做到这一点,即 (a) 不使用宏,以及 (b) 每次我们添加新站点时维护人员都无需单击/手动执行任何操作?

谢谢!/YGA

答案1

尝试使用以下公式,不需要LAMBDA()辅助函数或任何递归:LAMBDA()

在此处输入图片描述


• 单元格中使用的公式D1

=LET(
     α, TOCOL(A2:A6&" "&TOROW(B2:B4)),
     HSTACK(TEXTBEFORE(α," "),TEXTAFTER(α," ")))

笔记:只需将SitesValues范围转换为Structured ReferencesakaTables并使用上述公式,这是因为当在公式中使用结构化引用时,只要原始源发生变化,它就可以自动调整大小。


在此处输入图片描述


如果两者都在一张表内,那么:

=LET(
     α, TOCOL(Sites[Sites]&" "&TOROW(Sites[Values],1)),
     HSTACK(TEXTBEFORE(α," "),TEXTAFTER(α," ")))

相关内容