我有一张这样的出勤表,
Name | Date | Time |
abc | 12/3/2018 | 12:36:11 PM |
abc | 12/3/2018 | 08:30:11 PM |
EFG | 13/3/2018 | 09:35:11 PM |
EFG | 13/3/2018 | 06:23:11 PM |
EFG | 13/3/2018 | 9:36:11 PM |
abc | 14/3/2018 | 11:36:11 PM |
GHT | 14/3/2018 | 3:36:11 PM |
GHT | 14/3/2018 | 01:36:11 PM |
abc | 15/3/2018 | 10:36:11 PM |
我想要做的是这样的:获取名称和日期(如果两者都重复),如果名称和日期相同,则需要将不同的时间发送到新的单元格。
Name | Date | Time | new cell | new cell |
abc | 12/3/2018 | 12:36:11 PM | 08:30:11 PM |
EFG | 13/3/2018 | 09:35:11 PM | 06:23:11 PM | 9:36:11 PM |
abc | 14/3/2018 | 11:36:11 PM |
GHT | 14/3/2018 | 3:36:11 PM | 01:36:11 PM |
abc | 15/3/2018 | 10:36:11 PM |
到目前为止我尝试过 合并 Excel 工作表中的两行,其中一个单元格具有相同的内容,但其他单元格具有不同的内容有不同的内容,这是我接近的唯一解决方案。
并尝试将其导出到 Access 并编写 SQL 查询以获得上述结果。我该如何实现这一点?
答案1
使用工作表公式并不难做到这一点。我假设您现有的“名称”、“日期”和“时间”列分别为 A
、B
和 C
。我假设您想要将数据投影到新工作表上;即,您在 Sheet1 上的第一个插图中有数据,并且您希望在 Sheet2 上布局第二个插图。除了公式的细节外,将其投影到同一张工作表上的另一个区域是相同的。在任一情况下,如果您想替换原始数据,您可以复制和粘贴值。
在 Sheet1 上选择三列您不使用的列;例如X
,Y
和 Z
。
- 确保该单元格
X1
是空白的(或0
在那里输入)。 - 在单元格中
X2
输入=IF(AND(A1=A2,B1=B2),X1,X1+1)
。 - 在单元格中
Y2
输入=MATCH(ROW()-1,X:X,0)
。 - 在单元格中
Z2
输入=COUNTIF(X:X,ROW()-1)
。 - 选择
X2:Z2
并向下拖动/填充(至少)直至您有数据。
在 Sheet2 上,
- 在第 1 行中输入所需的列标题。
- 在单元格中
A2
输入=IFERROR(INDEX(Sheet1!A:A,Sheet1!Y2),"")
。 - 在单元格中
B2
输入=IFERROR(INDEX(Sheet1!B:B,Sheet1!Y2),"")
。 - 在单元格中
C2
输入=IF((COLUMN()-COLUMN($C:$C))<Sheet1!$Z2, INDEX(Sheet1!$C:$C,Sheet1!$Y2+(COLUMN()-COLUMN($C:$C))),"")
。 - 选择
C2
并拖动/填充到右侧(至少)足够远以覆盖您的数据(即,任何名称/日期对的最大重复行数)。 - 选择第 2 行中已填充的单元格(即,
A2
通过上一步中拖动到的单元格)并向下拖动/填充(至少)足够远以覆盖您的数据(即,您拥有的唯一名称/日期对的数量)。
瞧!
工作表1:
工作表2: