问题原因:
1、因为我的数据每天都会针对前几天的数据修正;所以每天复制内容的时候都需要向前覆盖几天的数据;——比如我8月8日更新数据,我就需要重新拿到前面8月1日-8月7日的数据覆盖一次前面几天的数据修正;
2、而且每天出现的广告位条数不一定相同,有时候可能一条,有时候可能两条或者没有;
我是以时间更新的表格,但是每个表格里有重复的时间,能不能设置成按照表格文件的更新时间或者文件夹里的文件顺序,后面更新的表格把前面表格存在的数据时间覆盖掉呢;
逻辑如图所示
这些不是基本操作嘛。没看出来你这个需求的难点,或者说你纠结的点在哪里 ~~
看你之前提问selenium,应该是接触过python的,去用python实现吧。你的思路“设置成按照表格文件的更新时间或者文件夹里的文件顺序,后面更新的表格把前面表格存在的数据时间覆盖掉”是正确的,而且你要滚动更新也只能这样做。
合并完然后,再根据时间覆盖下
可以在表格中创建一个时间列,并使用函数或公式根据需要向前覆盖数据。这样,就可以在表格中按时间顺序排列数据,并使用最新的数据来覆盖之前的数据。如果数据存储在文件夹中,可以编写一个脚本,根据文件夹中的文件更新时间来覆盖之前的数据
新建一列来存储时间,根据时间来覆盖更新
把时间记录上,然后根据记录的时间来更新
可以按照以下步骤进行操作:
打开一个空白的 Excel 工作簿,然后选择 "数据" 选项卡中的 "获取外部数据",并选择 "从文件" -> "从文件夹"。
在弹出的对话框中,选择包含要汇总的文件的文件夹,并点击 "确定"。
在下一个对话框中,选择要加载的文件类型(例如 CSV、Excel 等),然后点击 "编辑" 按钮。
在 Power Query 编辑器中,你可以对每个文件进行必要的转换和清洗操作。
在编辑器左侧面板上方找到 "查询设置" 选项卡,并点击展开。在其中找到 "查询依赖关系" 部分,并启用 "查询加载顺序" 选项。
确保你已经按照你想要的顺序排列了要汇总的文件。你可以通过拖放或者使用上下箭头按钮来调整它们之间的顺序。
点击右上角的 "关闭并应用" 按钮,将数据加载到 Excel 中。
现在,每当你有新的文件需要添加到同一文件夹中时,只需将其放入该文件夹即可。当你打开 Excel 文件时,Power Query 将自动检测到新添加的文件并更新数据模型。
使用Power Query进行同文件夹下多个文件的汇总可以使用以下步骤:
打开一个空的Excel工作簿,点击"数据"选项卡中的"来自其他数据",选择"来自文件",再选择"来自文件夹"。
在弹出的对话框中选择包含要汇总的文件的文件夹,并点击"确定"。
Power Query会自动加载所选文件夹中所有的文件。点击"组合编制"按钮或使用右键菜单中的"组合编制"选项。
在组合编制对话框中,选择"添加索引列"选项。这将为每个文件添加一个索引列,方便在后续步骤中进行标识和处理。
可以根据需要进行数据清理和转换操作。例如,删除不需要的列、更改数据类型、应用筛选等。
在完成数据清理和转换后,点击"关闭并加载",将汇总后的数据加载到一个新的工作表中。
默认情况下,Power Query会将来自所有文件的数据汇总,保留重复数据。但是,如果文件夹中的文件有更新,Power Query不会自动更新汇总数据。
若要实现滚动更新和覆盖重复数据的需求,可以使用以下方法:
将Power Query中所创建的查询改为函数,可以通过以下步骤来修改:在Power Query编辑器中,点击“主页”选项卡上的“将查询作为函数加载”按钮。
将查询函数应用到需要的单个文件上,并将结果加载到目标位置。这样就可以在后续重复执行函数的过程中,获取最新的数据。
设置定期执行查询函数。可以使用VBA宏或Power Automate等来实现定期执行查询函数的任务。
使用这种方法,每次执行查询函数时,它将会读取文件夹中的最新文件,并将数据加载到目标位置,从而实现滚动更新和覆盖重复数据的效果。
请注意,这些步骤中的具体细节可能会因Excel版本和其它因素而有所差异。上述步骤提供了一般的指导,可以根据实际情况进行调整和修改。
在Power Query中,你可以使用以下步骤来实现同文件夹下多个文件的汇总,并保持重复数据的滚动更新覆盖:
首先,创建一个新的查询,用于读取文件夹中的所有文件。使用Folder.Files函数来获取文件夹中的文件列表。例如:
M
let
Source = Folder.Files("路径/到/文件夹"),
...
in
Source
在上一步中创建的查询中,添加过滤条件,只选择包含你所需数据的文件类型。例如,如果你只需要处理Excel文件,可以使用*.xlsx作为过滤条件。例如:
M
let
Source = Folder.Files("路径/到/文件夹"),
FilteredFiles = Table.SelectRows(Source, each Text.EndsWith([Name], ".xlsx")),
...
in
FilteredFiles
添加一个自定义列,将文件的更新日期作为列值。可以使用Date.From函数将文件的ModifiedDateTime转换为日期格式。例如:
M
let
Source = Folder.Files("路径/到/文件夹"),
FilteredFiles = Table.SelectRows(Source, each Text.EndsWith([Name], ".xlsx")),
AddedDateColumn = Table.AddColumn(FilteredFiles, "更新日期", each Date.From([ModifiedDateTime])),
...
in
AddedDateColumn
对查询结果按照"更新日期"列进行排序,确保最新的文件排在前面。使用Table.Sort函数进行排序。例如:
M
let
Source = Folder.Files("路径/到/文件夹"),
FilteredFiles = Table.SelectRows(Source, each Text.EndsWith([Name], ".xlsx")),
AddedDateColumn = Table.AddColumn(FilteredFiles, "更新日期", each Date.From([ModifiedDateTime])),
SortedFiles = Table.Sort(AddedDateColumn, {{"更新日期", Order.Descending}}),
...
in
SortedFiles
添加一个循环遍历查询步骤,以处理每个文件。使用List.Accumulate函数和Table.Combine函数来逐步汇总每个文件的数据。例如:
M
let
Source = Folder.Files("路径/到/文件夹"),
FilteredFiles = Table.SelectRows(Source, each Text.EndsWith([Name], ".xlsx")),
AddedDateColumn = Table.AddColumn(FilteredFiles, "更新日期", each Date.From([ModifiedDateTime])),
SortedFiles = Table.Sort(AddedDateColumn, {{"更新日期", Order.Descending}}),
CombinedData = List.Accumulate(SortedFiles[Content], null, (state, current) => if state = null then current else Table.Combine({current, state})),
...
in
CombinedData
最终,你将得到一个汇总了所有文件数据的查询。在每次运行查询时,它会按照文件更新日期的顺序将最新的文件的数据覆盖之前的数据。
要合并的表格里,每个表格里有重复的数据;比如我8月10日登记我8月9日的赚了10块钱,然后我8月11日的登记我10日赚了20块,同时我发现我9日登记的数字错了,我应该是赚了15块;所以我11日新增的文件里除了增加10日的20块之外,还要覆盖修正9日赚了15元,这个动态更新的需求,你可以按照以下步骤进行动态更新和覆盖修正:
首先,根据前面提到的步骤获取文件夹中的所有文件,并按照更新日期进行排序。
创建一个空表格作为初始表格,用于存储最终汇总的数据。
使用循环遍历查询步骤来处理每个文件。在每个文件内部进行以下操作:
a. 读取文件数据,并过滤掉重复的行。你可以使用Table.Distinct函数来去除重复行。
b. 将当前文件的数据与初始表格中的数据进行合并。使用 Table.Combine 函数将当前文件的数据与初始表格中的数据合并为一个新的表格。
c. 根据需要进行数据修正。例如,你可以添加条件语句来判断是否有需要修正的数据,如果有,则进行修正。例如,如果你发现8月11日需要修正9日赚了15元,你可以使用Table.ReplaceMatchingRows函数来替换匹配的行。
d. 更新初始表格为合并后的新表格。
循环遍历所有文件后,初始表格中存储的数据即为汇总后的结果,包括动态更新和覆盖修正的内容。
以下是一个示例代码,其中假设你的文件中有两列数据:日期和金额。
M
let
Source = Folder.Files("路径/到/文件夹"),
FilteredFiles = Table.SelectRows(Source, each Text.EndsWith([Name], ".xlsx")),
AddedDateColumn = Table.AddColumn(FilteredFiles, "更新日期", each Date.From([ModifiedDateTime])),
SortedFiles = Table.Sort(AddedDateColumn, {{"更新日期", Order.Descending}}),
InitialTable = #table({"日期", "金额"}, {}),
CombinedData = List.Accumulate(SortedFiles[Content], InitialTable, (state, current) =>
let
// 读取数据并去重
Data = Table.Distinct(current, {"日期", "金额"}),
// 合并当前文件的数据和初始表格的数据
NewTable = Table.Combine({Data, state}),
// 判断是否需要修正数据,如果需要,则进行修正
CorrectedTable = if Date.From(current[ModifiedDateTime]) = #date(2023, 8, 11) then
Table.ReplaceMatchingRows(NewTable, {"日期"}, {{#date(2023, 8, 9), 15}})
else
NewTable
in
CorrectedTable
),
Result = Table.Distinct(CombinedData) // 去除最终结果中的重复行
in
Result
请根据你的实际情况进行调整,并将"路径/到/文件夹"替换为你的文件夹路径。
这样,你就可以实现动态更新和覆盖修正的汇总过程。
希望以上步骤可以解决你的问题。如果有任何进一步的疑问,请随时提问。
打开Power Query编辑器:在Excel中,点击“数据”选项卡,然后选择“来自文件” > “来自文件夹”。
选择文件夹:浏览并选择包含你要汇总的多个文件的文件夹。
加载数据:选择要加载的文件并点击“加载”按钮。这将加载文件夹中所有文件的数据。
合并数据:在Power Query编辑器中,选择“主页”选项卡,然后点击“合并查询” > “合并查询”。
配置合并选项:在“合并查询”对话框中,选择“合并的查询”为原始查询(即之前加载的文件)。
设置合并方式:选择合并方式,通常可以选择左连接、右连接、内连接或全连接,具体取决于你的数据需要。
根据重复字段合并:选择在两个查询之间用于合并的字段(例如,如果你希望根据某个ID列合并数据,则选择该列)。
点击确定:完成设置后,点击“确定”按钮,Power Query将根据你的配置合并数据。
处理重复数据:在合并的结果中,你可能会遇到重复的数据。你可以在Power Query中使用Group By或Remove Duplicates功能来处理这些重复数据,并选择保持最新数据或进行其他操作。
刷新数据:当原始文件夹中的文件有新数据时,可以刷新Power Query以更新汇总数据。在Excel中,你可以点击“数据”选项卡,然后点击“查询选项” > “刷新”。
请注意,Power Query中的M语言提供了强大的数据处理和转换功能,你可以根据自己的需求进行更复杂的数据操作。以上步骤仅是简单的示例,你可以根据实际情况进行调整和扩展。
Power query同文件夹下多个文件汇总的同时保持重复数据的滚动更新覆盖的方法
引用了人工智能c知道
如有帮助,望采纳
在 Power Query 中,你可以使用多个步骤来实现同文件夹下多个文件的汇总,并保持重复数据的滚动更新覆盖。下面是一个示例步骤:
1打开 Power Query 编辑器:在 Excel 中,选择需要进行数据汇总的单元格范围,然后转到“数据”选项卡,点击“从文件/文本”按钮,选择“从文件夹”选项。
2选择文件夹:在弹出的对话框中,选择包含要汇总的文件的文件夹,并点击“确定”。
3加载文件:Power Query 会读取文件夹中的所有文件,并将它们加载到一个表中。选择你想要汇总的文件,并进行必要的数据转换和清洗。
4添加索引列:在 Power Query 编辑器中,点击“添加列”选项卡,选择“索引列”按钮,并选择“从1开始”的选项。这将添加一个索引列,用于标识每个文件中的行。
5合并查询:在 Power Query 编辑器中,点击“添加查询”选项卡,选择“合并查询”按钮,然后选择“追加”选项。在弹出的对话框中,选择要合并的查询,这些查询包含了从每个文件中读取的数据。
6去除重复行:在合并的查询中,点击“主页”选项卡,选择“移除重复行”按钮。这将删除重复的行,只保留最新的行。
7更新查询:在 Power Query 编辑器中,点击“文件”选项卡,选择“选项和设置”按钮,然后在“查询”选项卡中,将“查询刷新”设置为“在打开工作簿时刷新”。
8关闭并应用:点击“主页”选项卡,选择“关闭并应用”按钮,将查询结果加载到 Excel 中。
现在,当你打开工作簿时,Power Query 会自动刷新查询,并将最新的数据合并到汇总表中。重复的行会被滚动更新覆盖,只保留最新的行。
请注意,在合并查询之前,确保每个文件的结构和列顺序相同,这样才能正确地进行数据合并。如果文件结构不同,你可能需要进行额外的数据转换步骤来使它们一致。
每一次解答都是一次用心理解的过程,期望对你有所帮助。
参考结合AI智能库,如有帮助,恭请采纳。
建议大致思考方向:
1、使用脚本来实现自动化数据更新,如Python或JavaScript编写程序,以自动获取数据并覆盖前一天的数据。还可以使用程序来读取文件夹中的文件列表,并按照文件名中的日期来更新数据。
2、使用数据库软件,设置触发器来自动更新和覆盖数据。还可以使用查询语句来删除重复的数据,并将新数据插入到表格中。
3、使用版本控制软件(如Git),则可以轻松地比较不同版本之间的差异,并使用更新数据更新前一天的数据。