我正在做一些关于算术序列模P的工作,其中序列在模下是周期性的。我的工作表生成一个序列mod P,其第一个项为0,第二个项为数字K(引用另一个单元格),并在递归关系之后生成以下项。序列的周期(重复的值数目)与P/K,s的比值有关,例如,如果P=2和K=1,则得到序列{0,1,1,0,1,1,1,1,…},其周期为3,所以当P/K=2时,周期为3。
目前,我有一个公式,用COUNTIF函数来计算范围内的零点数,然后将其从总范围中除以,目前任意大小为120,这给了我许多P/K比的正确周期,但大多数情况下,生成的序列具有半周期性,有时甚至是准周期,例如K=1和模9: K=1.},其中P/K=9,周期为24,半周期是12 (因为0,8,8,8,.(序列的一部分)。在这种情况下,我现在的COUNTIF公式认为整个周期是12,尽管它应该是24,因为它计算定义半周期的零。
我想要做的是调整公式,这样,它将只计数模式0,K,K中的单元格的三重奏序列,而不是计数准则为0。
我目前的公式:
=QUOTIENT(120,(COUNTIF(B2:DQ2,0)))因此,如果我有=QUOTIENT(120,(COUNTIF(B2:DQ2,*X*))),我希望"X“(目前为0 )引用一个特定的单元格序列,即整个系列的前三个,类似于:=QUOTIENT(120,(COUNTIF(B2:DQ2,(0,C2,D2)))),尽管这个标准显然不是在正确的语法上。
我不太精通宏的编写,所以这可能是不可能的。
发布于 2015-10-12 20:31:27
我会用四行助手行加上最后的公式来完成这个任务。比我更聪明的人可能能够在一个单元格中使用数组公式来完成这一任务;但与数组公式相比,我认为助手行更容易理解,如果需要的话,还可以进行调整。
一旦设置完毕,如果您总是使用三行作为标准,则可以隐藏帮助行(要隐藏一行,右键单击电子表格左侧的灰色数字标签,然后选择“隐藏”)。
因此,您的序列位于第2行,从列B开始。我们将在第3行中设置第一个助手行,从C列开始。在单元格C3中,将公式设置为=C2=$B$2。这将计算为FALSE,等于0。复制并粘贴该公式到单元格DQ3 (或您希望运行它的多少列)。序列号以下的单元格等于序列中的第一个数字,则计算值为TRUE,等于1。
接下来的两个助手行非常相似。在单元格D4中,将公式=D2=$C$2和复制粘贴到单元格DQ4中。此行测试哪些单元格等于序列中的第二个数字。
在单元格E5中,将公式=E2=$D$2并复制并粘贴到单元格DQ5中,显示哪些单元格等于序列中的第三个数字。
最后一个助手行有点不同,所以我在前三个助手之后留下了一个空行。在单元格E7中,我将公式=SUM(C3,D4,E5);复制并粘贴到DQ列。这将计算在前三个助手行中找到了多少匹配项。如果全部三次匹配,则此公式的结果将为3,并且您确定周期的标准已经满足。
现在,要显示句点:在单元格中要有这个数字,将公式=MATCH(3,E7:DQ7,0)。这将搜索最后(第四个)助手行,寻找等于3的单元格。(显然,您可以修改此方法,使其只匹配前两个序列号,或者匹配超过3个,然后调整匹配公式中的第一个参数。)此匹配公式中的最后一个参数为0,因为助手行没有排序。返回值是第一个匹配的索引: E7中的匹配将是索引1,E8中的匹配将是索引2,依此类推。
我在LibreOffice 4.4.4.3中测试了这一点。
https://stackoverflow.com/questions/33070803
复制相似问题