在varible中查找数组中的值

时间:2015-06-28 16:35:13

标签: arrays excel

在Excel中,我在第3列中有一个名为“level”的数组,如下所示 1,2,3,4,5,6,BR,7,8,9,10,BR,11,12,13,14,BR,15,16,17,18,BR,19,20 ...... .. C1中有一个变量,它是搜索数组的起点。

我希望能够做的是在C1中输入变量,例如说8并且在这种情况下得到“BR”之前的数字10。 要么 1-6应该给我值6,7-10值10,11-14值14等等。

在一些帮助下我想出了

=INDIRECT(ADDRESS(MATCH("BR", INDIRECT(ADDRESS(MATCH(C1,level, 0), 3) & ":" & ADDRESS(ROWS(level), 3)), 0)+MATCH(C1,level, 0)-2, 3))

除了“BR”后面的数字是变量时,它工作正常。 在这种情况下,它给出的数字高于之前的“BR” 例11给出10

阵列中“BR”的位置也可能会改变。

感谢您的帮助

3 个答案:

答案 0 :(得分:1)

试试这个数组输入公式。在点击@echo off pushd "f:\old" for /d %%a in (*.*) do (if %%~zF geq 102400 (xcopy /y "%%F" "F:\jpg\")) 时按住ctrl-shift输入公式。如果您正确执行此操作,Excel将在公式栏中的公式周围放置大括号enter

{...}

答案 1 :(得分:0)

您提供的示例在我的excel中运行良好,但是,第3列包含您提到的C1单元格,也许这就是为什么在您的文件中混淆它的原因。您确定用于输入搜索值的单元格是否会干扰您对级别的定义?

你可以让你的桌子可以访问吗?

答案 2 :(得分:0)

这是另一种选择。

=INDEX(level,MATCH("BR",(OFFSET(INDEX(level,1),MATCH(C1,level,0),0,ROWS(level)-MATCH(C1,level,0))),0)+MATCH(C1,level,0)-1)