【问题标题】:How do I match BUY/SELL orders in excel?如何在excel中匹配买/卖订单?
【发布时间】:2019-04-06 22:42:03
【问题描述】:

我有一个 4 列的电子表格(商品类型、订单类型、价格和数量)。电子表格有点像交易簿。

我要做的是创建一个公式,以按交易量百分比从订单列表中匹配买入和卖出订单类型。

因此,例如,如果存在 12 美元的 100 个橙子的买单和 13 美元的 100 个橙子的卖单,则两者的匹配率为 0%。

如果存在以 12 美元购买 100 个苹果的买单,并且存在以 11 美元购买 85 个苹果的卖单,则卖单匹配列将是 100%,而买单匹配列将是 85%。

然后我会按最低价格优先匹配。

例如:

Item Type        Order Type     Price     Volume     Match
----------       ----------    -------   --------   -------

Orange            SELL          $13        100       0%
Orange            BUY           $12        100       0%       
Apple             SELL          $11         85       100%
Apple             BUY           $12        100       85%

我尝试将具有不同(VLOOKUPS、INDEX、MATCH)的无休止复杂的 IF 语句串在一起,但是变得过于复杂并且开始变得毫无意义。

我什至不需要有人来帮助编写公式,也许只是在结构上指出我正确的方向以及使用什么,这样我就可以编写一些有效的东西。

任何帮助将不胜感激。

【问题讨论】:

  • 欢迎来到stackoverflow。没有小公式可以做到这一点。您可以使用SUMIFS 获取每个订单的交易量,然后使用IF 确定匹配列的值。另一种选择是编写一个自定义 VBA 函数来计算它,在这种情况下,复杂性将转移到 VBA 中,您可以在电子表格上使用一个简单的公式。
  • 感谢 GCSDC。我尝试了类似的东西: =IF(B3:B=B2,IF(C3:CC2,SUMIF(D3:D,

标签: excel excel-formula


【解决方案1】:

您可以使用这个公式(考虑到您的数据从单元格 A1 开始):

=IF(SUMIFS($D$2:$D$5;$A$2:$A$5;A2;$B$2:$B$5;"SELL") = SUMIFS($D$2:$D$5;$A$2:$A$5;A2;$B$2:$B$5;"BUY"); 0; SUMIFS($D$2:$D$5;$A$2:$A$5;A2;$B$2:$B$5;IF(B2="SELL";"BUY";"SELL")))

检查一个项目类型的买入和卖出量的总和是否相等。如果是,则取相反操作的成交量之和。如果不是,则返回0;

您还可以使用命名范围来使公式更清晰。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 2022-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多