excel电子表格中的简单搜索算法

时间:2012-10-02 12:19:46

标签: excel vba

我有一个装满了wights的桌子,行中的第一个单元格是价格,列标题是1到10之间的数字..这样的东西:

   1  2  3  4  5  6  ..
1$ 1g 9g 7g

2$ 4g 6g 8g 0g 0g 3g

3$ 4g 6g 8g 0g 0g 3g

4$ 4g 6g 8g 0g 0g 3g

.
.

我需要在excel的这张表中编写一个小算法,需要2个参数(param1,param2) param1过滤一些列和param 2来过滤一些行,然后选择所需的适当权重..我不是在询问算法,但我问我怎么能在excel中做到这一点,我的办公室技能都不存在,所以如果我需要宏,请你给我一个很好的链接,解释宏指令读取单元格范围和类似的东西..

2 个答案:

答案 0 :(得分:1)

您不需要VBA但可以使用公式:

=INDEX($B$2:$G$5,MATCH(H6,INDEX(A2:A5,1,),0),MATCH(I6,INDEX(B1:H1,1,),0))

INDEX函数将接受INDEX(Range, row, column)的输入并返回值。因此,我们希望找到输入行和列,这些行和列通过MATCH完成。

MATCH(H6,INDEX(A2:A5,1,),0)

查找H6中包含的值并提供范围A2:A5.中的索引因此,如果H6中包含的值为3$,则此函数将返回3,表示您的目标值在第三行。

同样,对于以下

MATCH(I6,INDEX(B1:H1,1,),0)

您正在寻找I6中的值,但现在正在搜索列标题。因此,如果I6 = 4,则返回值4(因为它是第四列)。

把它放在一起,你现在有一个

的功能
=INDEX($B$2:$G$5, 3, 4)

,它为您提供表格中Row = 3和Column = 4的值,由$B$2:$G$5给出,或者您的lokup值。

答案 1 :(得分:0)

这是一个非常全面的宏开始链接:http://dmcritchie.mvps.org/excel/getstarted.htm

如果您的过程非常有条件,那么制作宏可能会更好,并且知道如何编写宏将是一项非常有价值的技能。

一旦你尝试了一些东西并写了一些代码,你可以在这里发布它,我们可以帮助你在无法工作的地方,或者如果你不知道如何开始在一个地区你可以问另一个合适的问题。