Tag: 性能

在Excel中高效获得条件模式

我正在寻找find一个列的模式(最occurrent)值,给出另一列。 我知道如何做,但计算需要多个分钟,可以使Excel无响应。 所以我正在寻找更好的方法。 假设我的数据看起来像这样 group | Level 1 D 1 A 1.1 B 1 C 1 A 1 E 然后我想要输出看起来像这样: group | LevelMode 1 A 1.1 B 假设数据在工作表的左上angular,我现在使用这个公式,我沿着C列拖动: =COUNTIFS(A:A;A2;B:B;B2)/COUNTIF(A:A;A2) 这给了我的组内值的比例。 之后,我删除所有不超过0.5以及重复,给每个组的模式,如果它存在。 这个公式确实是我想要的,但对于大约50000行,它只需要太多的资源。 我期望在数据透视表选项中find它,或者在网上进行快速search之后,但我还没有find任何方法来实现我的目标。 我有相当好的硬件,一个相当新的Excel版本,宁愿没有macros的做这个。 但是,如果需要macros来实现这一点,那就这样吧。

如何提高使用MySQL的PHP​​脚本的速度?

我写了一个PHP脚本,使用这个库从Excel文件中读取一些数据。 然后在我的任意序列中将它插入MySQL数据库到一些表中。 这个Excel文件有200行,50列,通常执行时间超过60秒。 因为我的PHP主机不允许使用set_time_limit(0); 在你看来,如何提高我的脚本的速度? 我的脚本来读取每一行: function read_row($excelFile, $r){ require_once './inc/excel_reader2.php'; $data = new Spreadsheet_Excel_Reader($excelFile, FALSE); $col[0] = $data->val($r, 'E'); $col[1] = $data->val($r, 'F'); … $col[49] = $data->val($r, 'BZ'); return $col; } 我的脚本插入数据到MySQL: $count = $user->rowcount($sheet=0); if($final>0){ $count = $final; } $users = 0; for($i = 4; $i <= $count; $i++){ $f = $user->val($i,'D'); $c […]

VBA性能问题 – 迭代

我正在阅读5000个string的文本文件。 每个string都包含Date + Time和3个值。 date和时间之间的分隔符是空格,然后这三个值是制表符分隔的。 第一个string(strData(0))只是一个头,所以我不需要这个。 最后一个string只是一个简单的“结束”。 下面的代码工作,但需要1分钟导入到工作表! 我能做些什么来改善这一点,什么是需要时间? 屏幕更新已closures。 'open the file and read the contents Open strPpName For Binary As #1 MyData = Space$(LOF(1)) Get #1, , MyData Close #1 strData() = Split(MyData, vbCrLf) 'split the data and write into the correct columns Row = 3 i = 0 For Each wrd In […]

大pandas将列(A)与其他列(B)进行比较,并返回列(A)中存在的唯一值

我正在面临一个问题,同时比较两列非常数据包含约5至6缺乏细胞。 我使用countif公式来检查A列中是否存在值B列。但是,这需要花费大量的时间来计算,我停止了使用Excel的任务。 而且我正在pandas中find另一种方法来做这件事。 是否可以通过比较列Bfind列A中唯一值的列表。请build议。 A栏:585256 B栏:556245

提高Excel文件创build的性能

我有一个TabControl的应用程序。 它得到了一些TabPages ,都有一个DataGridView被填充一个DataTable 。 一旦TabControl被填充,我想能够导出所有的DataGridViews (或者他们的DataSources ,这是所有的DataTables )到一个Excel文件。 我有以下的代码。 它的工作,但需要近一分钟。 button被点击: private void exportBtn_Click(object sender, EventArgs e) { var result = new List<DataTable>(); foreach (TabPage page in tabControl1.TabPages) { var dgv = page.Controls[0] as DataGridView; if (dgv == null) continue; var dt = dgv.DataSource as DataTable; if (dt == null) continue; dt.TableName = page.Text; result.Add(dt); […]

在VBA excel中复制大量的数据

我希望能够从表单A复制大约30k行(确切地说,只是行中的一些元素)到表单B,从行36155行开始目的地。有时,我们复制行不止一次,具体取决于G列中的数字。 这是我写的macros: Sub copy() ActiveSheet.DisplayPageBreaks = False Application.ScreenUpdating = False Application.EnableEvents = False Application.Calculate Dim k As Long, k1 As Long, i As Integer k = 36155 k1 = 30000 For i = 1 To k1 For j = 1 To Sheets("A").Range("G" & i + 2).Value Sheets("B").Range("A" & k).Value = Sheets("A").Range("A" & i + 2).Value […]

提高macros循环的速度,在c上进行数据转换。 76,000行数据

我已经尝试了两种不同的configuration电子表格工具的方法,我已经将客户端提供的数据转换为我们自己的数据代码。 数据集可能会变得特别大(这是76,335行),所以macros观性能是非常重要的。 我尝试的第一种方法是将一系列索引/匹配公式logging到VBA中,并将这些代码插入到M到Y列,然后向下拖动到原始数据集中最后一行的位置(位于列A到J) 这些公式中只有一个是数组公式,我已经尝试了没有数组公式的代码,总体收益很小。 这种方法(我们称之为方法A)花费了14分8秒(带有i7-2600 CPU和8 GB RAM的Windows PC)。 如果我用VBA做excel公式所做的计算,我认为它会提高性能,我运行了下面的循环(方法B)。 Application.Calculation = xlCalculationManual Application.ScreenUpdating = False Application.EnableEvents = False lastRow = ActiveSheet.Cells(Rows.Count, "F").End(xlUp).Row For i = 6 To lastRow With ThisWorkbook.Worksheets("CONVERSION") If Range("M" & i) = "BIN" Then Range("N" & i) = "Duplicate" Else Range("N" & i) = Range("B" & i) & "-" & Range("D" […]

Excel vba:手动调用('=')或通过macros之间的函数性能差异

我必须编写自己的查找函数,但是根据我是否在工作表本身(通过“=”)或通过macros调用它,它的性能会有很大的不同。 我的macros执行以下操作: Function betterSearch(searchCell As Range, aCol As Range, bCol As Range) For Each cell In aCol If LCase(cell.Value) = LCase(searchCell.Value) Then betterSearch = bCol.Cells(cell.row, 1) Exit For End If betterSearch = "Not found" Next End Function 因此,macros将打开resultsWorkbook和dataWorkbook,然后在dataWorkbook中的resultWorkbook中执行A列中四个值的search,并从dataWorkbook的某个其他列中返回相应的数据。 '…opening resultWorkbook and dataWorkbook For aRow = 6 To 9 resultWorkbook.Worksheets("B3").Cells(aRow, 125).Value = _ betterSearch(resultWorkbook.Worksheets("B3").Cells(aRow, 1) _ […]

几千行数据后,效率不佳的Excel代码会中断

我对Excel和VBA相当陌生。 我写了一段代码,将一行数据分成多个部分,然后添加标题,颜色和图表。 问题是当我有很多的数据行。 我的代码运行得很好,当我有大约4000行的数据,但我得到说约10000行,Excel冻结,不再响应。 代码是相当长的,我希望任何人阅读整个事情。 我的疑惑是,excel没有响应和崩溃,因为有一个看门狗定时器,执行代码,如果它没有收到任何东西,那么它崩溃。 这只是一个猜测。 以下是我需要过滤的一切实际数据。 2017:06:29T14:12:11,0,1013,00,156,-0.112,12.751,000,000,38,34,33,1014,00,202,-0.102,12.734,000,000,38,35,33,1015,00,174,-0.105,12.755,000,000,37,35,33,1008,00,156,-0.110,12.741,000,000,37,35,33, 2017:06:29T14:12:12,0,1013,00,157,-0.102,12.758,000,000,38,34,33,1014,00,203,-0.105,12.744,000,000,38,35,33,1015,00,175,-0.103,12.757,000,000,37,35,33,1008,00,157,-0.107,12.757,000,000,37,35,33, 2017:06:29T14:12:13,0,1013,00,158,-0.113,12.737,000,000,38,34,33,1014,00,204,-0.094,12.760,000,000,38,35,33,1015,00,176,-0.117,12.748,000,000,37,35,33,1008,00,158,-0.109,12.744,000,000,37,35,33, 2017:06:29T14:12:14,0,1013,00,159,-0.103,12.753,000,000,38,34,33,1014,00,205,-0.103,12.720,000,000,38,35,33,1015,00,177,-0.108,12.732,000,000,37,35,33,1008,00,159,-0.110,12.758,000,000,37,35,33, 2017:06:29T14:12:15,0,1013,00,160,-0.112,12.757,000,000,38,34,33,1014,00,206,-0.095,12.734,000,000,38,35,33,1015,00,178,-0.118,12.729,000,000,37,35,33,1008,00,160,-0.115,12.755,000,000,37,35,33, 我乐于接受任何build议,并乐于学习。 感谢您的提前帮助和帮助。 Sub SeparateData() 'Author: Me 'Date: July 13, 2017 'Purpose: This macro take the data in the worksheet and separates the data in a readable fashion for the user. ' This macro also plots and reports any errors that it has […]

在单独的线程上从Excel读取WPF应用程序的性能较差

我在我的项目中使用Excel COM API读取和写入Excel 2003中的一些代码。 现在这段代码从两个地方被调用: 1.在Excel加载项本身内,在同一个线程上。 2.从一个WPF应用程序,在一个单独的线程上调用WPF窗口。 问题是,当WPF应用程序调用代码时,从Excel中读取10秒的正常操作需要2分钟。 我想这是因为从一个新的线程调用,但我不是100%肯定。 有任何想法吗?