我有一个包含以下结构的表格,它显示日历条目:
| Title | Description | StartTime | EndTime | User |
我想创建一个具有以下结构的新表,该表将显示所有用户及其在第一行中给出的日期的计划。:
| User | Date1 | Date2 | Date3 | …
我的问题是这样的:
如果Date1(或Date2 ..)介于开始日期和结束日期之间,我想在第二个表格中显示行的标题。所以我需要一个excel公式,我可以在所有单元格中编写。
我可以写一个这样的SQL语句(我知道它的语法不正确,但我想展示我需要的东西):
SELECT Title
FROM Table1, Table2
WHERE Date1 > StartDate AND Date1 < EndDate and User.Table1 = User.Table2
.............
你能帮帮我吗?
答案 0 :(得分:0)
想不到一个简单的方法来做到这一点。
首先,如果有两个标题属于同一用户的同一日期段,您打算如何显示它?
对我而言,这看起来像是将汇总表反向工程到更详细的表,在这个表中您需要按日期键入单个列 - 填写所有缺失的数据,然后一个简单的数据透镜就可以执行工作
首先,您需要只保留一个日期字段,然后填写开始日期和结束日期之间的所有日期。
从这个: *列出两个标题 - 用户a的a和b,用于说明一个用户在同一日期段中出现多个标题的问题。
对此: - 填写标题出现的所有日期
我们可以看到它出现的日期,而不是列出的标题。轻松将枢轴复制并粘贴为值,然后将标题名称“1”替换为标题名称“a”,以获得以下内容:
答案 1 :(得分:0)
你有Power Query吗?如果你有Excel 2016版本,你可以在以前的版本中使用它(Get&amp; Transform),你可以下载它。它是一个免费的插件。
它将出现在查询编辑器中,您可以:
Duration.Days([End] - [Start])
List.Dates([Start],[Subtraction]+1,#duration(1,0,0,0))
最后,您将获得一张包含新信息的新表格。
您可以添加一些过滤器以查看特定时间段...
关于这一点的惊人之处在于您可以附加所需的所有数据,然后在绿色表格中进行简单的右键单击并刷新,您将修复数据。
如果您只想复制并粘贴&#34;高级编辑器&#34;
,这就是查询let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Title", type text}, {"Start", type date}, {"End", type date}, {"User", type text}}),
#"Inserted Date Subtraction" = Table.AddColumn(#"Changed Type", "Subtraction", each Duration.Days([End] - [Start])),
#"Added Custom" = Table.AddColumn(#"Inserted Date Subtraction", "Days", each List.Dates([Start],[Subtraction]+1,#duration(1,0,0,0))),
#"Expanded Days" = Table.ExpandListColumn(#"Added Custom", "Days"),
#"Removed Columns" = Table.RemoveColumns(#"Expanded Days",{"Start", "End", "Subtraction"}),
#"Pivoted Column" = Table.Pivot(Table.TransformColumnTypes(#"Removed Columns", {{"Days", type text}}, "en-US"), List.Distinct(Table.TransformColumnTypes(#"Removed Columns", {{"Days", type text}}, "en-US")[Days]), "Days", "Title")
in
#"Pivoted Column"