首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用VBA在Excel中创建双向查找价格矩阵(Index/Match/SumProduct)

VBA(Visual Basic for Applications)是一种基于Visual Basic语言的宏编程语言,可以用于在Excel中创建自定义功能和自动化操作。在Excel中创建双向查找价格矩阵可以使用多种方法,其中包括使用Index、Match和SumProduct函数。

  1. Index函数:Index函数用于从指定的区域中返回某个值。在创建双向查找价格矩阵时,可以使用Index函数根据给定的行和列索引获取对应的值。该函数的语法如下:
代码语言:txt
复制
Index(array, row_num, column_num)
  • array:需要查询的数据区域。
  • row_num:要返回值的行索引。
  • column_num:要返回值的列索引。
  1. Match函数:Match函数用于查找指定值在区域中的位置。在创建双向查找价格矩阵时,可以使用Match函数查找给定的行或列名称,并返回对应的行或列索引。该函数的语法如下:
代码语言:txt
复制
Match(lookup_value, lookup_array, match_type)
  • lookup_value:要查找的值。
  • lookup_array:要查找的区域。
  • match_type:匹配类型,1表示找到小于等于lookup_value的最大值,-1表示找到大于等于lookup_value的最小值,0表示找到与lookup_value精确匹配的值。
  1. SumProduct函数:SumProduct函数用于对区域中的值进行乘法运算,并返回结果的总和。在创建双向查找价格矩阵时,可以使用SumProduct函数根据给定的行和列索引,计算对应的值的乘积并求和。该函数的语法如下:
代码语言:txt
复制
SumProduct(array1, array2, ...)
  • array1, array2, ...:需要进行乘法运算的数组。

使用VBA在Excel中创建双向查找价格矩阵的示例代码如下:

代码语言:txt
复制
Sub CreatePriceMatrix()
    Dim matrixRange As Range
    Dim rowIndex As Long, columnIndex As Long
    
    ' 设置价格矩阵的数据区域
    Set matrixRange = Range("B2:E6")
    
    ' 获取行索引和列索引
    rowIndex = Application.WorksheetFunction.Match(Range("G2").Value, Range("B2:B6"), 0)
    columnIndex = Application.WorksheetFunction.Match(Range("G3").Value, Range("C1:E1"), 0)
    
    ' 使用Index函数获取对应的值
    Range("G4").Value = Application.WorksheetFunction.Index(matrixRange, rowIndex, columnIndex)
End Sub

在实际应用中,双向查找价格矩阵可以用于根据产品名称和日期来查找对应的价格。例如,假设B2:E6是一个产品价格矩阵,B2:B6是产品名称,C1:E1是日期,G2是产品名称输入框,G3是日期输入框,G4是输出框。通过输入产品名称和日期,执行上述宏后,G4中将显示对应产品和日期的价格。

对于此问题,腾讯云的相关产品和服务推荐如下:

  • 腾讯云服务器(CVM):提供可靠的云端计算服务,可用于处理大量计算任务。
  • 腾讯云数据库(TencentDB):提供高性能、可扩展的数据库解决方案,支持多种数据库引擎。
  • 腾讯云函数(SCF):无服务器计算服务,可实现事件触发的自动化操作。
  • 腾讯云对象存储(COS):安全、低成本的云端存储服务,可存储和访问任意类型的数据。
  • 腾讯云人工智能平台(AI Lab):提供丰富的人工智能服务和开发工具,可支持音视频、图像、语音等处理任务。

更多关于腾讯云产品的详细介绍和文档可以参考腾讯云官方网站:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Excel公式练习:合并单元格中的条件求和

多一些练习,想想自己会怎么解决这个问题,看看别人又是怎样解决的,这样能够快速提高Excel公式编写水平。 本次的练习是:示例数据如下图1所示。 图1 现在,想根据列A中的数据对列B中的值汇总。...例如,对于列A中的“A”来说,在列B中对应的值是:1、13、14、15、16、17、18,其和为94。 我们将单元格区域A2:A21命名为“D”,单元格区域B2:B21命名为“V”。...要求只能使用公式,不能使用VBA,仅能使用上述两个命名区域名称,不能使用填充功能填充空单元格。 请写下你的公式。 解决方案 公式1:数组公式。...=SUM((INDEX(D,N(IF({1},MATCH(ROW(D),IF(NOT(ISBLANK(D)),ROW(D),""),1))))="A")*V) 或者: =SUMPRODUCT(--(INDEX...…… 公式并没有给出详细的解析,有兴趣的朋友可以参照前面推送的有关分析公式的文章对这些公式进行解析,相信对理解Excel函数,编写公式解决问题会有很大的帮助。

2.4K30

疯狂的Excel公式,只为条件求和

标签:公式练习 在使用Excel时,经常会遇到根据多个条件求相应的和的问题。 示例数据如下图1所示。工作表中有两个表,一个是活动的全部数据,另一个列出了其中暂停活动的列表。...问题的解决实质上仍然涉及到查找,找到不属于暂停列表中的活动,求相应的小时数之和,然后再求这些活动中例行活动的小时数之和。...我首先想到使用经典的MATCH/INDEX函数组合的数组公式,但没有成功,接着转向使用矩阵公式。...第1问,使用COUNTIFS函数查找暂停活动: =SUM(C2:C16)-SUMPRODUCT(COUNTIFS(F2:F8,A2:A16),C2:C16) 或者使用SUMIF函数: =SUM(C2:C16...注:在知识星球完美Excel社群可以下载本文配套示例工作簿。

1.2K30
  • Excel实战技巧55: 在包含重复值的列表中查找指定数据最后出现的数据

    图1 下面,我们分别使用公式和VBA来解决。...使用INDEX+SUMPRODUCT+MAX+ROW函数 公式如下: =INDEX($B$2:$B$10,SUMPRODUCT(MAX(ROW($A$2:$A$10)*($D$2=$A$2:$A$10)...得到一个由行号和0组成的数组,MAX函数获取这个数组的最大值,也就是与单元格D2中的值相同的数据在A2:A10中的最后一个位置,减去1是因为查找的是B2:B10中的值,是从第2行开始的,得到要查找的值在...组成的数组,由于这个数组中找不到2,LOOKUP函数在数组中一直查找,直至最后一个比2小的最大值,也就是数组中的最后一个1,返回B2:B10中对应的值,也就是要查找的数据在列表中最后的值。...图3 使用VBA自定义函数 在VBE中输入下面的代码: Function LookupLastItem(LookupValue AsString, _ LookupRange As Range,

    10.9K20

    【收藏】数据分析必会的Excel高频函数合集

    日常工具最重要的是使用场景,需要用时才会去找使用方法,然后在反复使用过程中逐渐熟练。...4 MATCH函数组合 MACTH函数是EXCEL中使用较为广泛的一个函数,MATCH函数的功能就是在指定区域内搜索特定内容,然后返回这个内容在指定区域里面的相对位置。...4.3 MATCH与INDEX函数组合 先来说说INDEX函数的作用: INDEX函数用于在一个区域中,根据指定的行和列号来返回内容。...公式为: =INDEX(B24:B33,MATCH(D24,A24:A33,0)) 先用MATCH函数,查找D24单元格的"M10004"在A列中所处的位置,得到结果为4,然后使用INDEX函数,在B列中返回第...公式为: =INDEX(A39:A48,MATCH(D39,B39:B48,0)) 先用MATCH函数,查找D39单元格的"秘书"在B列中所处的位置,得到结果为4,然后使用INDEX函数,在A列中返回第

    3.7K20

    Excel公式技巧14: 在主工作表中汇总多个工作表中满足条件的值

    在《Excel公式练习32:将包含空单元格的多行多列单元格区域转换成单独的列并去掉空单元格》中,我们讲述了一种方法,给定由多个列组成的单元格区域,从该区域返回由所有非空单元格组成的单个列。...本文提供了一种方法,在给定一个或多个相同布局的工作表的情况下,可以创建另一个“主”工作表,该工作表仅由满足特定条件的所有工作表中的数据组成。并且,这里不使用VBA,仅使用公式。...图3 想要创建一个主工作表Master,其数据来源于上面三个工作表中列D中的值为“Y”的数据: ?...在工作表Master的单元格G1中,输入下面的公式: =SUMPRODUCT(COUNTIF(INDIRECT("'"&Sheets&"'!...D2:D10"),"Y")) 在工作表Master的单元格A2中输入下面的数组公式: =IF(ROWS($1:1)>$G$1,"",INDEX(INDIRECT("'"&INDEX(Sheets,MATCH

    9.1K21

    错误不可怕,就看你如何使用ISNA函数

    标签:Excel函数 本文深入探讨在Excel中使用ISNA函数处理#N/A错误的各种方法。 当Excel无法找到所需内容时,单元格中会出现“N/A”错误。...要将A2中的值与列D中的每个值进行比较,公式为: =MATCH(A2,D2:D9,0) 如果找到查找值,MATCH函数将返回其在查找数组中的相对位置,否则将发生#N/A错误。...图3 VLOOKUP/ISNA组合的Excel公式 IF/ISNA组合是一个通用的解决方案,可以与任何函数一起使用,该函数在一组数据中搜索某些内容,并且在找不到查找值时返回#N/A错误。...例如,要找出有多少学生在所有测试中都通过,修改单元格区域(A2:A13)查找值的MATCH公式,并将其嵌套在ISNA函数中: =SUMPRODUCT(--ISNA(MATCH(A2:A13,D2:D9,0...图6 这就是如何在Excel中创建和使用ISNA公式,希望对你有所帮助。

    9.8K20

    查找的较量

    今天,小吴和小范这两个小伙伴又开始研讨Excel了,他们仍然聚焦在Excel公式上。 小吴:我先抛出道题,看你能不能快速用Excel答出来。 小范:OK,拭目以待。 小吴:还是直接看工作表吧。...如下图1所示,根据单元格D13和D14中的数据,在上方单元格区域C2:I10中获取预算额。 图1 小范:这还不简单,这不就是经典的INDEX/MATCH函数组合查找吗,你也太小瞧我了吧。...小范同学有点不屑,随手写下了他的公式: =INDEX(D3:I10,MATCH(D13,C3:C10,0),MATCH(D14,D2:I2,0)) 小吴:不错,看来基本功很扎实嘛。还有别的公式吗?...小范:既然要获取某单元格中的值,就要先知道这个单元格的地址,更进一步是要知道单元格所在的行列号。求行列号在前面的公式中都用过了,使用MATCH函数求得。...不过,不能使用表的特定语法。 小范:提示一下?

    34810

    八种方式实现多条件匹配

    之前在Excel内部的分享交流群和别的讲师探讨了多条件匹配有哪些实现方式。 围观的市民刘先生表示:我活了二十多年,看见斗图的比较多,这么无聊斗Excel使用技巧的第一次见! 为了更好的装逼,哦!...方法五:Match+Index大法! match和index匹配可以完全实现Vlookup的应用,还可以实现反查等Vlookup本身实现不了的匹配功能。...基础函数介绍 =Match(查找什么,在哪个列找,0)返回第一个参数在第二个参数中的位置 =Index(列,返回该列第几个值)返回某个列中第N个值 两个组合就是Vlookup的应用咯! ?...公式:{=INDEX(D2:D9,MATCH(G2&H2,B2:B9&C2:C9,0))} 思路:先获取查找的内容在新的列中属于第几位,然后返回评分列对应位置的值! 完美!...重点是Match函数的应用,Match第一个参数就是两个条件合并,第二个参数本来应该接一个列,本案例我用两个列相乘,实现了每个列相同位置用文本连接符链接在一起,和创建辅助列是一样的!

    12.9K41

    精通数组公式16:基于条件提取数据

    excelperfect 在Excel中,基于AND或OR条件从数据集中提取数据是经常要做的事。...当从表中提取数据时,实际上是在执行查找。在Excel中,标准的查找函数例如INDEX、MATCH、VLOOKUP等都非常好,但当存在重复值时就比较困难了。...图1:需要提取两条记录,标准的查找函数对于重复值有些困难。 使用辅助列来提取数据 假设有3个AND条件来决定要提取的记录,如下图2所示,可以在辅助列中使用AND函数。辅助列作为INDEX函数的查找列。...使用辅助单元格,可以帮助减小公式的计算时间。 如下图4所示,在单元格H12中输入公式: =IF(G12>6,"",INDEX(A17,MATCH(G12,E8:E17,0))) 向左向下拖动复制。...图7:AND和OR条件,双向查找从日期和商品数列中获取数据 未完待续>>> 注:本文为电子书《精通Excel数组公式(学习笔记版)》中的一部分内容节选。

    4.3K20

    Excel实战技巧91: 安排工作时间进度计划表(又一种形式)

    学习Excel技术,关注微信公众号: excelperfect 导言:在《Excel实战技巧90:安排工作时间进度计划表》中,以类似甘特图的形式使用公式计算每天各项任务的时间,从而形成一个时间进度计划表...在“时间安排”工作表的单元格B2中输入数组公式: =IF(SUM(C$1:C1)>=SUMPRODUCT(WorkDuration),"…",INDEX(WorkList, MATCH(TRUE, (CumulativeDuration-SUM...在“时间安排”工作表的单元格C2中输入数组公式: =IF(SUM(C$1:C1)>=SUMPRODUCT(WorkDuration),"…",MIN(INDEX(WorkDuration, MATCH(...代入INDEX函数中: INDEX(WorkDuration, MATCH(TRUE,CumulativeDuration-SUM(C$1:C1) > 0, 0)) 从WorkDuration中获取任务开始时相对应的时间值...有兴趣的朋友可以在选择公式中的某部分后使用F9键或者“公式求值”查看公式运行的中间结果,以加深对公式的理解。 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

    2K10

    Excel实战技巧85:从下拉列表中选择并显示相关的图片

    在《Excel实战技巧15:在工作表中查找图片》中,我们使用名称和INDEX/MATCH函数组合,在工作表中显示与所选择名称相对应的图片。...在《Excel实战技巧21:在工作表中查找图片(方法2)》中,使用名称和OFFSET/COUNTA/MATCH函数来实现相同的效果。...在《Excel实战技巧22:在工作表中查找图片(使用VBA代码)》中,使用VBA代码来达到根据名称显示相应图片的效果。本文实现的效果相同,实现的方法类似,但可能更简单些。...单击功能区“公式”选项卡“定义名称”组中的“根据所选内容创建”命令,根据左侧列创建名称,如下图4所示。 ? 图4 这里运用了一个技巧,一次性创建了8个名称。...图7 相关文章: Excel实战技巧15:在工作表中查找图片 Excel实战技巧21:在工作表中查找图片 Excel实战技巧22:在工作表中查找图片(使用VBA代码) 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识

    6.6K10

    Excel公式练习79: 多个OR条件计数

    学习Excel技术,关注微信公众号: excelperfect 本次的练习是:在Excel中,我们经常要基于多个OR条件进行计数或求和。...为方便起见,我们定义了命名区域,如上图1中所示。 先不看答案,自已动手试一试。 解决方案 可以使用SUMPRODUCT函数与ISNUMBER/MATCH函数的组合来编写公式求得结果。...在单元格F9中的公式为: =SUMPRODUCT(ISNUMBER(MATCH(项目,{"T恤衫","连帽衫"},0))*1) 公式中的MATCH函数在“项目”列中查找“T恤衫”或“连帽衫”,返回由数字...函数求和得到满足条件的项目数: 7 在单元格G9中的公式为: =SUMPRODUCT(ISNUMBER(MATCH(项目,{"T恤衫","连帽衫"},0))*ISNUMBER(MATCH(颜色,{"红色...0))*ISNUMBER(MATCH(城市,{"北京","上海"},0))) 上述公式中,花括号内的数组是硬编码值,我们可以使用单元格区域来替换: =SUMPRODUCT(ISNUMBER(MATCH(

    2.2K20

    Excel公式练习94:统计子列表在列表中出现的次数

    多一些练习,想想自己怎么解决问题,看看别人又是怎解决的,能够快速提高Excel公式编写水平。 本次的练习是:计算子列表在列表中出现的次数。...示例数据如下图1所示,你的列表和子列表的位置可能与图示不相同,也可以假设两个列表都在行中,子列表中的项可能会重复,但列表中需要完全匹配才能对其进行计数。...图1 不应该使用任何辅助单元格、中间公式或者VBA。 写下你的公式。...,(List=TRANSPOSE(Sublist))*(ROW(List)-TRANSPOSE(ROW(Sublist))))=ROWS(Sublist))) 返回: 2 公式2: 输入数组公式: =SUMPRODUCT...(--(COUNTIF(List,T(OFFSET(A1,SMALL(IF(FREQUENCY(MATCH(Sublist,Sublist,0),MATCH(Sublist,Sublist,0))>=1

    2.3K30

    python吊打Excel?屁!那是你不会用!

    ——黄同学 1、excel函数需要掌握的基础功能   下面都是在使用Excel过程中,所使用过的一些基础功能,限于篇幅这里就不详细介绍,大家可以自行下去操作一遍。...学会使用在线帮助功能(按F1键)。 合理的逻辑思维,excel中函数的使用,和我们学习其他编程语言中使用函数一样,了解函数的功能、参数。...在定义这两个概念之前,我们先来说明一下excel中的行与列。从上图可以看出,在excel中,行索引是一系列的数字(1,2,3...),列索引是一系列的大写字母(A,B,C...),。...③ index ? 关于index()函数显示某一行值,涉及到数组的操作,下面我们录制了一个视频。 ? ④ match ?...注意:index()和match()进行搭配使用,进行多条件查找,相当有效,也特别好用。组合棋类的效果是这样的:index(查找区域,行号,列号)。 ⑤ offset ?

    3.7K50

    精通Excel数组公式008:数组常量

    图8 注意到,图8所示的公式中,Excel并没有在公式两边添加花括号,这表明,在SMALL函数中使用数组常量作为参数k的值,不需要按Ctrl+Shift+Enter组合键。...下面重点看看公式1: =SUMPRODUCT(LARGE(B2:B8,ROW(INDIRECT("1:"&D3)))) 公式中,使用INDIRECT函数和ROW函数创建了一个按顺序排列的可变长度的数字数组...示例:在VLOOKUP函数中的查找技巧 使用数组常量来节省工作表空间 在使用VLOOKUP函数时,如果你不想通过查找表查找且数据不会变化,可以将查找表硬编码到公式中,如下图16所示。 ?...图16 使用名称 除了按上述方法在公式中列出查找表的所有数据外,还可以将数组常量定义为名称并在公式中使用。如下图17所示,定义名称包含查找表数据。 ?...图18 对参数col_index_num指定数组常量 在VLOOKUP函数中的参数lookup_value不能处理数组,然而可以对参数col_index_num指定数组常量。

    2.9K20

    Excel实战技巧86:从下拉列表中选择并显示相关的图片和文字说明

    在《Excel实战技巧15:在工作表中查找图片》中,我们使用名称和INDEX/MATCH函数组合,在工作表中显示与所选择名称相对应的图片。...在《Excel实战技巧21:在工作表中查找图片》中,使用名称和OFFSET/COUNTA/MATCH函数来实现相同的效果。...在《Excel实战技巧22:在工作表中查找图片(使用VBA代码)》中,使用VBA代码来达到根据名称显示相应图片的效果。...图4 相关文章: Excel实战技巧15:在工作表中查找图片 Excel实战技巧21:在工作表中查找图片 Excel实战技巧22:在工作表中查找图片(使用VBA代码) Excel实战技巧85:从下拉列表中选择并显示相关的图片...欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料。 完美Excel社群2020.9.9动态 #Excel VBA解读之用户窗体00# 写在前面的话

    7.2K20

    巧妙解决二维表信息匹配问题

    最近UP主在准备考试,所以更新频率略有下降。本期和大家分享的是Excel一个世界性难题!! 对就是上面那货!...可以使用match加index函数组合实现,那我们先试一下~ =INDEX(A2:A11,MATCH(A15,B2:B11,0)) 之前很多文章介绍过match和index的组合用法,这里不累述了。...4 使用index返回对应数据即可!...解决问题二: 方法二 将每个问题对应的投诉细项匹配 上述问题可以解决本案例,并且从单match函数推导至多match函数组合应用,但是感觉略麻烦,所以又分享了如何使用sumproduct函数进行分享 =...然后这个4作为index的第二个参数就好啦~ 以上~ 附上Excel练习表~ 链接: https://pan.baidu.com/s/1TBAz3W0xn0oSM2IQELBeMQ 密码: r9f3 感谢收看

    88120

    36条常用Excel技巧 收藏备用!

    +1,,10,1)) 15、查找数据公式两个(基本查找函数为VLOOKUP,MATCH) (1)、根据符合行列两个条件查找对应结果 =VLOOKUP(H1,A1:E7,MATCH(I1,A1:E1,0)...,FALSE) (2)、根据符合两列数据查找对应结果(为数组公式) =INDEX(C1:C7,MATCH(H1&I1,A1:A7&B1:B7,0)) 16、如何隐藏单元格中的0 单元格格式自定义0;-0...现在是=sum(n(offset(a1,(row(1:10)-1)*3,))) 27、在一个工作表中引用其他工作表中的数据,但是被引用的工作表不是固定的,根据我输入的工作表名自动选择相应的工作表中的数据...=SUM(INDIRECT("A1:A"&ROW()-1)) 31、比较好用的EXCEL文档修复工具 ExcelRecovery 32、EXCEL开方运算 将8开3次方,可以用这个公式,在单元格中输入  ...=8^(1/3) 33、单元格中的数据分散对齐 文本格式》全角输入 34、查找工作表中的链接 Ctrl+~ 或编辑》链接 35、如何让空单元格自动填为0 选中需更改的区域》查找》空》替换》0 36、把Word

    3.4K50
    领券