0 | 一个 | 乙 | 碳 | 德 | 埃 | F | 格 |
---|---|---|---|---|---|---|---|
1 | 问题 1 | 第二季度 | 第三季度 | Q4 | 产品 A | ||
2 | 产品 A | 500 | 900 | 100 | |||
3 | 产品 B | 600 | 400 | 500 | |||
4 | 产品C | 100 | 350 | 785 | 900 | ||
5 | 产品D | 230 | 600 | 210 | 690 | 100 | |
6 | 产品 E | 310 | 900 | 480 | 125 | ||
7 |
在中Range G3:G6
我想根据在中输入的行条件转置值Cell G1
。
(注意:列出的产品Column A
始终是唯一的。)
在此示例中,Row B2:E2
forProduct A
被转置并显示在 中Range G3:G6
。
到目前为止我已经能够开发出这个公式:
=LET(
a,TRANSPOSE(B2:E2),
IFERROR(INDEX(FILTER(a,a<>0),SEQUENCE(4,,1)),""))
此公式有效。
但是,我不知道如何使Range B2:E2
此公式中的 灵活,以便它根据 中的输入而变化Cell G1
。
您是否知道如何修改它以使其发挥作用?
另一个解决方案(更简单且性能更好)可以是:
将整个数据范围传递给
data
变量的另一种解决方案:结果:
或者
=TOCOL(FILTER(B2:E6,A2:A6=G1),3)
如果你有 Excel 365另一个选择是使用
FILTER()
。因为每个问题都应该有一个过于复杂和过度设计的解决方案:
谢谢 Michal,但
XMATCH
感觉被冷落了 ;)或者,由 rotabor 提供,(可容纳未来的条目
start:XLOOKUP(TRUE, column <> "")
: