我想实现如下所示的屏幕截图。有什么方法可以让我在excel中使用任何技巧来很容易地做到这一点?因为我的数据集非常大
输入:

输出:

发布于 2021-11-12 15:59:37
这是一个针对您的问题的Excel365-formula解决方案:
我在工作表中添加了一个表tblData -数据不是100 %等于您的.使用表的好处:列的名称不是“抽象的”A、B、C

A13、B12和B13中的公式是溢出公式,因此新表的大小取决于数据源的数据。
A13:所有工具都会使=tblData[Tool]溢出
B12:根据ROM和EOP列的数据范围,=LET(minDate,MIN(tblData[[ROM]:[EOP]]),maxDate,MAX(tblData[[ROM]:[EOP]]), SEQUENCE(1,maxDate-minDate+1,minDate))溢出到右边
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中添加行或更改日期,则结果表将处理此问题。
除了格式化日期-这必须手动-(尤其是)。如果日期范围增加。
格式条件不溢出,但必须手动应用。也许这也是可能的,但我还没试过。
=AND(COLUMN()>=MATCH("EOP",$B13:$P13,0)+1,COLUMN()<=MATCH("ROM",$B13:$P13,0)+1)请根据您的需要调整单元格引用
发布于 2021-11-11 20:23:16
摘要:使用Power功能。在一个范围内选择所需的数据:右键单击并选择get data from table/range.按屏幕指示执行
更详细的步骤:
1.0)选择数据,然后右击选择表/范围中的get数据
2.0)从Power Query编辑器弹出..。
2.1)选择范围以撤消数据。(移位并选择带有日期的第一列和最后一列)
2.2) goto转换不枢轴列
2.2.1)现在应该有3列
2.3选择日期为value列
2.3.1变换->轴列
2.3.2在弹出窗口中有属性作为值列
2.3.2.1选择高级并选择min或max (不管是哪一个)
2.4选择“关闭并加载”。


如果需要,将上面的内容记录为一个宏,以便重复执行;但是一旦您了解了这些宏,这些步骤就会非常直接。
https://stackoverflow.com/questions/69933831
复制相似问题