我有一个这样的Excel标签。
它为我提供了有关何时计划开始使用产品的信息。
我的输入表的列是:
Product Number, Dummy column, Dummy column, Worker ID, Starting Date, Ending Date
我的输入表中的行是:
Product 1,xyz,xyz,Worker 1,13/08/2018 13:50,20/08/2018 15:30
Product 1,xyz,xyz,Worker 2,08/08/2018 03:50,16/08/2018 08:30
Product 1,xyz,xyz,Worker 9,23/08/2018 08:08,03/09/2018 10:00
Product 2,xyz,xyz,Worker 4,10/08/2018 13:50,27/08/2018 15:30
Product 2,xyz,xyz,Worker 9,18/08/2018 03:50,20/08/2018 08:30
Product 3,xyz,xyz,Worker 2,13/08/2018 08:08,13/09/2018 10:00
我的结果表应具有:
“结果”选项卡中的值应显示给定工人和该工人开始工作的产品的给定日期。 因此,如果此时workerX尚未开始在产品上工作,则该单元格可能为空。
您是否知道如何在Excel中解决此问题(如果无法在Excel中访问,请访问Access)
答案 0 :(得分:0)
访问可能将是您最好的选择。您将要创建一个列,以从开始日期列中剥离时间值,而只剩下日期值。现在称为开始日。现在基于您的表创建一个交叉表查询。这些行将基于工人ID 列。这些列将基于开始日期列。该值将使用产品编号字段上的称为“ First()”的聚合函数。
我认为它在SQL中应该看起来像这样(用您的表名替换
TRANSFORM First([Product Number])
SELECT [Worker ID] FROM <YOURTABLE> GROUP BY [Worker ID]
PIVOT [Starting Day]
祝你好运!
答案 1 :(得分:0)
在A列中传输数据。
在C2到C20单元格中,以与数据中显示的相同的方式键入worker 1,Worker 2等的名称。
在第1行中,输入从D1单元格开始的日期。
在我的示例中,单元格D1是2018年8月7日,E1是2018年8月8日。
在单元格D2中,输入以下数组公式
= IF(MAX(IFERROR(FIND($ C2&“,”&TEXT(D $ 1,“ dd / mm / yyyy”),$ A $ 1:$ A $ 1000,1),0))= 0 ,“-”,“是”)
使用 Control + Shift + Enter (而不是Enter)输入Array Formulas。
将公式拖动到所需的单元格。 如果工人在特定日期启动了项目,则结果为“是”,如果工人在特定日期没有启动任何项目,则结果为“-”。
根据需要更改单元格引用。
如果要获得产品详细信息,请代替“是”,然后在单元格D2中使用下面的数组公式。
= IFERROR(LEFT(IF((MAX(IF(IFERROR(FIND($ C2&“,”&TEXT(D $ 1,“ dd / mm / yyyy”),$ A $ 1:$ A $ 1000,1 ),0)> 0,ROW($ 1:$ 1000),“-”)))= 0,“-”,INDEX($ A $ 1:$ A $ 1000,(MAX(IF(IFERROR(FIND($ C2&“, “&TEXT(D $ 1,” dd / mm / yyyy“),$ A $ 1:$ A $ 1000,1),0)> 0,ROW($ 1:$ 1000),”-“))),1))),查找($ C2,IF((MAX(IF(IFERROR(FIND($ C2&“,”&TEXT(D $ 1,“ dd / mm / yyyy”),$ A $ 1:$ A $ 1000,1),0)> 0, ROW($ 1:$ 1000),“-”)))= 0,“-”,INDEX($ A $ 1:$ A $ 1000,(MAX(IF(IFERROR(FIND($ C2&“,”&TEXT(D $ 1,“ dd / mm / yyyy“),$ A $ 1:$ A $ 1000,1),0)> 0,ROW($ 1:$ 1000),”-“))),1)),1)-2),”- “)
请让我知道您是否要这样做。
此致
Vijaykumar Shetye,
卓越的电子表格
Panaji,印度果阿