作为使用 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(α," ")))
笔记:只需将Sites
和Values
范围转换为Structured References
akaTables
并使用上述公式,这是因为当在公式中使用结构化引用时,只要原始源发生变化,它就可以自动调整大小。
如果两者都在一张表内,那么:
=LET(
α, TOCOL(Sites[Sites]&" "&TOROW(Sites[Values],1)),
HSTACK(TEXTBEFORE(α," "),TEXTAFTER(α," ")))