Answers:
最简单的方法是将数据导入Access或SQL Express,然后在Excel中使用数据连接功能。初始设置后,您需要做的就是单击全部刷新,它将提取数据并重新计算值。
您可以使用数据连接功能直接导入CSV,但是它将想要拉入数据并将其添加到工作表中。只要将其导入到辅助工作表中,并将公式和计算结果留在另一工作表上,这将起作用。当您单击“使用此方法刷新”时,它将询问文件名,然后使用与最初使用的设置相同的设置重新导入它。对于大型数据集,此方法通常也较慢或不可用。
您也可以使用Power Query,这是一种与@ andy-lynch的answer相同的灵活方式。
请参见下面的gif动画预览。
Power Query不适用于MacOS。MacOS上的Excel“来自文本”打开文件对话框也不接受URL(至少在版本15.33中)。
要创建这样的连接,首先必须构建一个Web查询文件(.iqy),如本指南中所述,然后使用“数据->获取外部数据->运行保存的查询”菜单命令将其导入。
问题是“如何引用.csv文件中的数据?
我的方法是剪切.csv文件,并使用包含VBA和ADO的宏,该宏接收数据并将其直接放入Excel中的工作表中。任何符合ODBC的数据库都可以作为您的来源。
Excel 2010具有数据>>获取外部数据-来自各种数据源。但是,我更喜欢编写自己的代码,因为我拥有绝对的控制权,并且可以在宏中格式化结果。只需单击一个按钮即可刷新,您可以执行任何操作。
如果您告诉我指标来自哪个数据库,我可以告诉您一些细节。
PS在“数据” >>“获取外部数据” >>“现有连接” >>中查看驱动程序列表。然后,您必须知道要使用的源数据库和驱动程序。您可以通过hotmail在climbbeacham给我发送电子邮件,以获取更多详细信息。
通过File->From Text
检查中的连接属性直接导入csv文件Data->Connections
请参阅通过连接导入文本文件
使用VBS宏或脚本将看起来像(Excel2010及更高版本):
Sub Macro1()
'
' Macro1 Macro
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;\\Path\To\CSV\Folder\CSV_Data.csv" _
, Destination:=Range("$A$1"))
.CommandType = 0
.Name = "Book1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub