Excel 使用集合/字典或类进行乘法的Vlookup
我的问题是,我有一个试算表(一个账户列表,运行了多个月,其期末余额为各种货币)和第二张表,其中显示了这些月fxrate对美元的兑换率。第一张纸可能有数十万行,而第二张纸大约有150-200行。这两张纸的快速摘录如下: 第1页:Excel 使用集合/字典或类进行乘法的Vlookup,excel,vba,class,dictionary,excel-formula,Excel,Vba,Class,Dictionary,Excel Formula,我的问题是,我有一个试算表(一个账户列表,运行了多个月,其期末余额为各种货币)和第二张表,其中显示了这些月fxrate对美元的兑换率。第一张纸可能有数十万行,而第二张纸大约有150-200行。这两张纸的快速摘录如下: 第1页: A - Month; B - Currency; C - ending balance; Col D (USD); Col E (USD per Dec-18 rate) Dec-18 EUR 12000 Dec-18
A - Month; B - Currency; C - ending balance; Col D (USD); Col E (USD per Dec-18 rate)
Dec-18 EUR 12000
Dec-18 GBP 55000
Dec-18 SEK 1500000
Mar-19 EUR 60000
Mar-19 GBP 1700
Mar-19 SEK 500
第二页:
A - Month; B - Currency; C - fxrate
Dec-18 EUR 0.9
Dec-18 GBP 0.7
Dec-18 SEK 9.3
Mar-19 EUR 0.85
Mar-19 GBP 0.75
Mar-19 SEK 9.1
我的目标是:
- 填写第1张表格中的D栏,将C栏乘以第2张表格中C栏的fxrate值,并在匹配月份进行此操作。因此,在D1中,我想找出2018年12月欧元的fxrate是(0.9),然后将12000乘以该值。但是对于D4,我想知道19年3月欧元的fxrate(0.85)并乘以60000
- 填写第一页的E栏,选择我希望使用fxrate from的月份(无论第一页A栏中规定的月份)。例如,我可以将某个变量“Dec-18”赋值,然后在第1页的整个项目列表中仅使用Dec-18的fxrates。所以这次在E2中,我将把12000乘以0.9(同上),然而对于E4,我将把6000乘以0.9(不是0.85)
我看了一些关于普通vlookup、字典和课程的帖子,但我无法回答这个问题。有谁能帮助我,至少能指导我找到一个我可以尝试增强的部分解决方案吗?你可以做一个技巧,使用
SUMIFS
。因为我们可以假设,表单2中的每个月
-货币
组合都是唯一的,它将返回实际的fxrate
,因为只有一个唯一条目的总和是值本身:
此公式将返回fxrate
=SUMIFS(Sheet2!C:C,Sheet2!A:A,Sheet1!A:A,Sheet2!B:B,Sheet1!B:B)
你只需要把它乘以C列
=SUMIFS(Sheet2!C:C,Sheet2!A:A,Sheet1!A:A,Sheet2!B:B,Sheet1!B:B)*C:C
要获得结果(请对D列使用此公式)
对于E列,它几乎是相同的公式,您只需在某处写入固定月份值,并将SUMIFS
中的此单元格用作标准,而不是A列
=SUMIFS(Sheet2!C:C,Sheet2!A:A,$I$2,Sheet2!B:B,Sheet1!B:B)*C:C
我使用了cell$I$2
(见下面示例中的红色):
表1表2
Hi PEH,理论上,我一直在寻找自动解决方案,因为我想添加几个步骤,以便在事后分析数据,但这个公式仍然比我们之前使用SUMPRODUCT时的公式更短、更好、更快。谢谢你的帮助out@Wojtek您也可以使用VBA编写公式:
Range(“D2:D7”)。公式=“=SUMIFS(Sheet2!C:C,Sheet2!A:A,Sheet1!A:A,Sheet2!B:B,Sheet1!B:B)*C:C”
因此,仍然可以使用公式自动执行此操作。公式的最大优点是,当您更改一个值(例如fxrate
)时,它们会立即重新计算如果这回答了你的问题,请投票/将其标记为已解决:谢谢,佩赫,我刚刚回答了。