通过非迭代计算解决我的循环引用?

更新 – 简化更多:

为了防止人们不知所措,下面是我的问题的一个超级简单的版本:

Excel截图 - 简化的循环引用问题

请给我写C,D和E列公式,其中:

  • C栏
    • 如果列B是0,那么如果列A是1,则放1,否则0。
    • 如果列B是1,那么如果列A是1并且列E是0,则放1,否则0。
  • D栏
    • 如果C列为1,则放置1,否则为0。
  • E栏
    • D列总和

但是不要循环引用。

问题:

我刚刚在Excel表格上创build了​​一个循环引用,我明白为什么它是循环的。 当我去到循环参考单元格,然后做公式选项卡,评估公式button,它似乎按照预期进行评估。 因此,我希望有人能为我提出一个非迭代计算解决scheme。

语境:

我正试图解决被拒绝的医疗索赔是重复的。

我首先检查一下,如果另一个索赔似乎是重复的,那么,如果没有重复的索赔被发现,我检查一下被拒绝的索赔是否是对自己的复制。

Excel中:

Excel截图 - 循环参考问题

在这里您可以看到两个索赔的简化图像:

  • 列S具有声明数据的标准(截图以外),其将每个声明限定为重复。
  • 列AF,主要原因,检查列S(以及为了说明的目的而隐藏的其他类似分类列)是否为1.如果是,则表示1,否则表示为1。
  • 列AG计算列AF中有多less个1。

现在,我更改了列S的公式,对列S中的行为0,列S,AF和AG产生循环引用警告。列S中的公式(使用S3作为示例)是:

=if(and(or($R3=0,$AG3=0),[the other claims data criteria that would mark the row as a duplicate]),1,0) 

当Excel正在计算列R中0为0的行时,循环引用发生,到目前为止在列AG中为0,列S中为1(但还不是因为尚未计算)。 在这种情况下,在列S公式中,$ R3 = 0和$ AG = 0都被评估为True,但是一旦评估结束并且列S被标记为1,则列AF将变为1,并且列AG变为1,然后列S中的OR()从(True,True)变为(True,False)。 这并不能改变OR()的净结果,但却让Excel感到担忧。

重新解决问题:

考虑到这一切,并假设迭代计算不是最佳解决scheme(请让我知道如果是),我将如何解决这个问题? 我已经浏览了几个SO Excel的圆形参考文章已经和将继续寻找。

编辑:对列AF的描述进行了更正,并描述了为什么发生循环引用。

在A2:B3中的所有4个单元格都等于1的情况下,您有一个骗子的悖论。您在列C中的公式取决于A,B(它们在两行中都相同)以及列C (这是E所持有的)。 因此 – 列C中的两个值根据您自己的规则是相同的。 如果这个值是0,那么E是0,因此这个值毕竟是1。 如果值是1,那么总和是2(不是1),因此该值毕竟是0。 因此,C中的值是0,当且仅当它们是1.除非A,B中的所有4个值不可能同时为1,否则您有一组不一致的规范。

与我以前的自答相反,我的循环推理是给出了不正确的答案,不应该使用。