动态参考公式

时间:2017-05-22 13:21:01

标签: excel excel-formula

我正在开展涉及音乐的excel项目。我在一张常量中定义了所有不同的音符,并希望在主页上显示音阶。这些是以不同顺序运行的常量。

例如:

如果在一张纸上我定义了A - B - C - D

我希望能够动态填充列表,最后一个元素循环回到第一个元素(就像一个列表,其中最后一个元素具有对第一个元素的引用)。示例输出如下。

Instrumentation.ActivityResult result = new Instrumentation.ActivityResult(Activity.RESULT_OK, null);
        intending(hasAction(MediaStore.ACTION_IMAGE_CAPTURE)).respondWith(result);

伪代码中的逻辑

Root   Scale

A   A - B - C - D
B   B - C - D - A
C   C - D - A - B
D   D - A - B - C

我试图用

之类的东西来实现它
if (lookup == 0)
   cell value = lookup - num constants defined //loop back around
else (cell value = lookup value)

如果可能的话,我希望让整个事情变得充满活力

=if constants!A2 = 0, <Loop around and fetch the equivalent Value>, <constants!A2>)

由于语法错误,这些都不起作用,但我希望他们能有效地传达这个想法。

2 个答案:

答案 0 :(得分:1)

我认为比例的第一列始终与根之后相同(在我的情况下从C2开始)

=IFERROR(INDEX(Sheet2!$A$2:$D$2,MATCH(B2,Sheet2!$A$2:$D$2,0)+1),Sheet2!$A$2)

其中音阶(A,B,C,D)的音符在sheet2中!a2:d2。

因此它会尝试按顺序获取下一个音符,但如果失败则会返回到第一个音符。

enter image description here

答案 1 :(得分:1)

模运算符MOD非常适合辅助循环旋转。

在下图中,我在第2行有常量。从单元格A11开始,我输入旋转应从(绿色区域)开始的常量。然后我在B11输入以下公式,并在黄色区域中复制/粘贴:

=INDEX($2:$2,1+MOD(MATCH($A11,$2:$2)+COLUMN(B11)-COLUMN($C11),COUNTA($2:$2)))

enter image description here

您可以将该部分转移到另一个工作表并调整单元格地址,并在Constants!前面添加2:2。另请注意,公式会根据常量数自动调整...