Excel 技巧 - 用于查找

Excel Trick - For lookups

我想实现如下截图所示。有什么方法可以使用 excel 中的任何技巧来轻松实现这一目标吗?由于我的数据集很大

输入:

输出:

总结: 使用 Power Query 编辑器功能。 Select 范围内的所需数据: 右键单击并 select 从 table/range 获取数据...按照屏幕说明进行操作

更具体的步骤:

1.0) Select 数据;然后右键单击 select 从 table/range

获取数据

2.0) 从 Power Query 编辑器弹出窗口...

2.1) Select 反透视数据的范围..(Shift 和 select 第一列和最后一列带日期)

2.2) 转到转换逆透视列

2.2.1) 现在你应该有 3 列

2.3 select 带日期的值列

2.3.1 变换--> 透视列

弹出窗口中的 2.3.2 将属性作为您的值列

2.3.2.1 select 高级和 select 最小值或最大值(哪个无关紧要)

2.4 select 关闭并加载。

如有需要,将以上记录为宏,重复执行;但是一旦你学会了,这些步骤就非常简单了。

这是针对您的问题的 Excel 365 公式解决方案:

我在 sheet 中添加了一个 table tblData - 数据不是 100% 等于你的...使用 table 的好处:列已解决他们的名字不是“抽象的”A、B、C

A13、B12、B13中的公式是溢出公式-所以new的大小table取决于数据源的数据。

A13:=tblData[Tool] 使用所有工具溢出

B12:=LET(minDate,MIN(tblData[[ROM]:[EOP]]),maxDate,MAX(tblData[[ROM]:[EOP]]), SEQUENCE(1,maxDate-minDate+1,minDate)) 根据 ROM 和 EOP 列的日期范围向右溢出

B13:=LET(rgROM,FILTER(tblData,(tblData[#Headers]="ROM")), rgEOP,FILTER(tblData,(tblData[#Headers]="EOP")), rowIndex,SEQUENCE(ROWS(rgROM)), IF(INDEX(rgEOP,rowIndex)=B12#,"EOP", IF(INDEX(rgROM,rowIndex)=B12#,"ROM",""))) 检查第 12 行的日期是否等于 EOP 或 ROM 中的日期 - 如果是,则写入相应的值。

如果您在 ROM 和 EOP 中添加行或更改日期,结果 table 将处理此问题。

除了格式化日期 - 这必须手动完成 - 特别是。如果日期范围增加。

格式条件没有溢出 - 但必须手动应用。 也许也可以增强它 - 但我还没有尝试过。

=AND(COLUMN()>=MATCH("EOP",$B13:$P13,0)+1,COLUMN()<=MATCH("ROM",$B13:$P13,0)+1) 请根据您的需要调整单元格引用