Tag: 优化

从Excel到R的优化

我正努力在R中求解以下优化问题。用excel求解器很容易,但是我不能在R中做同样的问题。我在R中没有太多的优化经验问题是当某个特定活动应该是在一段时间内完成的。 A1,A2,…,A12是在一个字段中完成的12个活动。 0代表未分配,1代表分配。 约束是 – A2应该在A1完成之后发生,A3应该在A2完成之后发生,以此类推 A3,A5,A6 – 这些活动中只有两个可以在某一天发生 每个活动应该发生在一个字段(在Excel解算器中,这个约束是通过取行等于1来定义的 这将是一个很大的帮助,如果有人可以帮助解决这个问题。 为了更好地理解这个问题,我附上了图片。 另外,请让我知道是否有任何网站或书籍,丰富的例子“如何解决R中的优化问题”。 感谢你在期待。

优化我的VBA代码,所以它运行更快/股票价格计算

我需要优化我的代码,所以它运行得更快。 它只有12000个计算。 我的工作表中有大约6 000行,我需要计算一列的回报率和另一列的对数回报率。 问题是,当我用Excel公式进行这些计数时,每列需要2-3秒,所以6 000行的收益率在2秒内计算,而在第二列中的对数收益率也是如此。 但是我的代码需要60秒才能运行。 这怎么可能呢? 我确信VBA计算将会比这更快。 Sub Normal_Return_Rate() Dim ws As Worksheet Dim current_price As Single Dim previous_price As Single Dim a_cell As Range Dim b_cell As Range Dim vba_cell As Range Dim row As Long Dim b_col As Integer Dim vba_col As Integer Dim last_row As Long Dim start As Double […]

操作/复制.CSV数据,而不打开文件?

我试图优化一些代码,它将一些testing数据存储在CSV文件中进行一些分析,并将其数据复制到Excel表格中。 此代码通常每次运行数百个testing,每次testing需要花费大约4.5秒的时间,因此可能需要几个小时才能完成。 我查了一些优化技术,并在每次testing中减less了大约0.25秒,但是我认为大部分时间都是由excel占用的,因为excel必须“打开”各个文件才能对它们做任何事情。 有没有办法更有效地做到这一点? 我很乐意接受使用另一种语言将文件编译成一个大文件的答案,如果这样做会使事情变得更快。

Excel – 获取单元格格式很慢

我正在使用C#从Excel文件中提取数据。 我需要从工作表中获取文本和一些小的格式化数据。 我的testing表有115行和10列。 performance似乎呆滞。 如果我只使用下面的代码拉出文本,则需要大约2秒的时间才能运行。 如果我检查字体(在if(c.Font.Bold == null …..行),它会上升到8秒,如果我得到的边界信息,然后上升到17秒。 问题是,我会有很多很多的工作表,我需要从中提取数据,速度将成为一个问题。 有什么build议,我可以做些什么来加快速度? 我真的很感激任何帮助。 foreach (Range c in oSheet.UsedRange.Cells) { var txt = c.Text; if (c.Font.Bold == null || c.Font.Italic == null || Convert.ToInt32(c.Font.Underline) > 0 || Convert.ToBoolean(c.Font.Bold) || Convert.ToBoolean(c.Font.Italic)) txt = ""; var borderBottom = c.Borders.Item[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeBottom].LineStyle; var borderTop = c.Borders.Item[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeTop].LineStyle; var borderLeft = c.Borders.Item[Microsoft.Office.Interop.Excel.XlBordersIndex.xlEdgeLeft].LineStyle; var borderRight […]

拖动公式而不拖动

我连续有几个公式,我想把它们拖下来。 公式是复杂的,我没有他们在R1C1格式,我不想将它们转换成R1C1,但我想做的事情是这样的: Range(A2:B10).Formula = Range.(A1:B1).Formula 我知道这样会把同一个公式放到整个范围内,我需要一个“拖动效果” – 所以它相对于每一行都有变化,但是没有粘贴 。 PS我不想复制粘贴,因为它吃更多的CPU,我想有东西

在C#中更快的Excel文件访问

我的C#应用​​程序从excel文件中获取大量数据并处理,然后将其写回到文件中。 问题是从Excel文件加载数据时,需要一些时间(大约7000字段的Excel需要30秒) 我想让它变得更快,有没有什么方法可以使它在更长的时间内更快? 我用来获取数据的代码是: streamReader = new StreamReader(@"ExcelPath.txt"); string path = streamReader.ReadLine(); //An Excel Application ==(contains)==> [Many] Excel WorkBook ==(contains)==>[Many] Excel WorkSheets==(contains)==>[Many] Ranges Microsoft.Office.Interop.Excel.Application excelapp = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbook myworkbook = excelapp.Workbooks.Open(path, 0, false, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true); Microsoft.Office.Interop.Excel.Sheets myworksheets = myworkbook.Worksheets; Microsoft.Office.Interop.Excel.Worksheet myworksheet =myworksheets.get_Item(1); Microsoft.Office.Interop.Excel.Range range = myworksheet.UsedRange; […]

在Java代码中频繁提交插入数据库是否是一个好习惯?

我的java代码读取excel文件,并将数据写入(插入)到oracle数据库。 例如,我需要读取2000行excel文件中的一些类似的单元格,我的代码读取它,插入到数据库,并在提交后。 第一个约1000行插入很快,而另外1000行插入很长。 缺乏记忆的可能原因。 所以,我认为在数据加载到数据库时要经常提交(例如,在每读取50行之后进行提交)。 这样做是好的做法,还是有其他方法可以解决这个问题?

循环遍历一个范围中的每个单元格

我对VBA的工作原理有了一个基本的了解。 我希望有人能帮助缩短这个。 你会很快看到,代码是巨大的,如果我能为我的项目得到优化,它会爱上它。 Sub Delete_missing_vals() Dim myLastRow As Long Dim i As Long Application.ScreenUpdating = False ' Find last row myLastRow = Cells(Rows.Count, "A").End(xlUp).Row ' Loop through range For i = 1 To myLastRow If Cells(i, "A").Value = -99 Or Cells(i, "A").Value = -77 Or Cells(i, "A").Value = -66 Then Range(Cells(i, "A"), Cells(i, "A")).ClearContents If […]

在Excel中复制每行第n行

例如,如果我有30行,我想复制第一,第二和第三,跳过五,然后复制下三个,然后再跳过五,复制下面三行:我怎么能做到这一点? 到目前为止,我只有这个公式 =OFFSET(Sheet1!$A$1,(ROW()-1)*5,0) 这只能得到我一个单元格的值,但我想整个行复制到另一个工作表。 任何帮助将是伟大的! 谢谢

在Excel中分配供给以匹配需求

这是我一直在努力的一个逻辑谜题,我很好奇看到SO社区提出什么样的解决scheme。 我有24个随机生成的需求值,每天一个小时。 我有一个15人的工作人员,每人必须在8小时轮class工作,但可能在一天中的任何时间开始工作。 我正在寻找能最大程度减less二十四小时供求差距的公式。 结果可能看起来类似于下表,考虑到该公式为员工的最佳八小时轮class中的每小时分配一个“1”。 Hour Demand Staff 1 Staff 2 … Staff 15 Total Staff Difference 0 4 1 1 0 4 0 1 3 1 1 0 4 0 … 23 6 0 0 1 5 1