【问题标题】:Excel formula for calculating columns by given row按给定行计算列的Excel公式
【发布时间】:2015-02-14 19:01:15
【问题描述】:

给定一个故事问题:

一串圣诞灯,总共 150 盏灯(可能是无限的)
灯的两个可能值 0=Off 或 1=On
如果灯最初都是 0:
Person1 把所有的灯都变成 1:
Person2 将灯 2,4,6,8,...150 转为 0:
Person3 将灯 3,6,9,12...150 转为 1:
Person4 将灯光 4,8,12,16...150 转为 0:
继续 150 人。

如何在 Excel 公式中表达这一点?

【问题讨论】:

    标签: excel-formula


    【解决方案1】:

    这需要一种迭代方法。转到文件 |选项 |公式,将工作簿计算设置为手动,勾选启用迭代计算并将最大迭代设置为 1。

    使用填充系列在 C2-C151 中设置灯光编号 1-150。

    将以下公式放入B2中以遍历人员编号:-

    =IF(A2,0,B2+1)
    

    在 D2 中输入以下公式,以确定 C2 中的灯是否会打开或关闭(奇数人总是打开,偶数人会关闭,但仅适用于与其人数精确倍数的灯):-

    =IF(A$2,FALSE,IF(MOD(C2,B$2)=0,ISODD(B$2),D2))
    

    将公式从 D3 复制到 D151。

    我还添加了一个公式来在 E2 中显示文本字符串“ON”或“OFF”,但这是可选的:-

    =IF(D2,"ON","OFF")
    

    要初始化它(可能有更简洁的方法),请在 A2 中键入“1”。

    屏幕底部应该有一个“计算”按钮。按一次应该将所有灯设置为“关闭”

    在 A2 中键入“0”。现在每次按下“计算”时,它都会模拟 B2 中显示号码的人的动作。

    这是第 3 个人成功后的样子:-

    如果您想看看在所有 150 人都尝试过之后的样子,请返回文件 |选项 |公式并将最大迭代次数设置为 150。

    像以前一样重置并计算。

    现在看起来像这样:-

    灯光交替 - 这是您的预期吗?对于所有偶数灯,最近的动作是由偶数人执行的,所以它是关闭的,反之亦然。

    或者,也许您正在考虑马特·帕克 (Matt Parker) 的《在第四维度中制作和做的事情》一书中概述的问题。在这里,一系列守卫可以使用相同的约束锁定和解锁牢房门,除了它们总是将 0(锁定)变为 1(解锁)并将 1 变为 0,事实证明,那些保持打开的就是那些平方数为 1,4,9,16 ...

    在这种情况下,D 列中的公式为

    =IF(A$2,FALSE,IF(MOD(C2,B$2)=0,NOT(D2),D2))
    

    它看起来像这样:-

    【讨论】:

      猜你喜欢
      • 2020-04-11
      • 1970-01-01
      • 1970-01-01
      • 2014-09-27
      • 1970-01-01
      • 2017-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多