Excel 索引/匹配/VLOOKUP协助
下表是我正在研究的XLSX中的前29行,其主要目的是计算导出呼叫数据的成本 下表中的数据是PowerShell脚本填充的结果,该脚本将CSV中的费率数据(用于计算通话费用)与另一个CSV中客户每日通话统计数据中的通话数据相结合 费率数据: F列[目的地]包含所有已知的国家代码。 E列[费率]包含F列中每个国家/地区代码的费率值,用于计算结束时的通话成本 调用导出数据: C列[被叫人号码]包含被叫人的原始电话号码(被叫人)。 H列[被叫国代码]取C列中数字的前几位,用于下一步 坦白说,我一直坚持的目标是: 专栏I是我正在做的 我需要一个公式,有效地查找H列中的拨号国家代码,并查找F列中与之最相似(不需要精确)的国家代码。一旦找到,我需要它返回E列[费率]中同一行的值 然后,应使用第C/H列中数字的正确比率填充第I列 我尝试过的公式:Excel 索引/匹配/VLOOKUP协助,excel,excel-formula,Excel,Excel Formula,下表是我正在研究的XLSX中的前29行,其主要目的是计算导出呼叫数据的成本 下表中的数据是PowerShell脚本填充的结果,该脚本将CSV中的费率数据(用于计算通话费用)与另一个CSV中客户每日通话统计数据中的通话数据相结合 费率数据: F列[目的地]包含所有已知的国家代码。 E列[费率]包含F列中每个国家/地区代码的费率值,用于计算结束时的通话成本 调用导出数据: C列[被叫人号码]包含被叫人的原始电话号码(被叫人)。 H列[被叫国代码]取C列中数字的前几位,用于下一步 坦白说,我一直坚持的
=指数($A$2:$K$100000,VLOOKUP(H2,$F$2:$F$100000,5,TRUE))
=索引($G$2:$G$100000,匹配(H2,$F$2:$F$100000,0))
我对Excel不是很在行,但我确信用100000来选择整个专栏是很糟糕的做法
谢谢你的帮助:)
开始时间
顾客
被叫号码
国家
比率
目的地
持续时间(分钟)
被叫国代码
电话费
通话费用
2020-09-01T07:25:30.5190000Z
名称1
+44***
阿富汗
1.415
93
0
44
2020-09-01T08:05:52.6250000Z
姓名2
+442476******
阿富汗
1.415
9320
0.383333333
442
2020-09-01T08:33:49.6530000Z
名字3
+441509******
阿富汗
1.415
9321
0.7
441
2020-09-01T08:35:18.5300000Z
名字4
+441509******
阿富汗
1.415
9322
0.766666667
441
2020-09-01T08:43:45.330000Z
名字5
+447976******
阿富汗
1.415
9323
1.85
447
2020-09-01T08:47:29.9630000Z
名字6
+442476******
阿富汗
1.415
9324
2.533333333
442
2020-09-01T08:57:43.2680000Z
姓名7
+447875******
阿富汗
1.415
9325
3.633333333
447
2020-09-01T09:04:42.8230000Z
姓名8
+441212******
阿富汗
1.415
9326
4.916666667
441
2020-09-01T09:15:32.7220000Z
名字9
+441923******
阿富汗
1.415
9327
1.9
441
2020-09-01T09:30:36.4750000Z
名字10
+441923******
阿富汗
1.415
9328
5.8
441
2020-09-01T09:58:12.8380000Z
名字11
+442476******
阿富汗
1.415
9370
0.516666667
442
2020-09-01T10:03:04.1270000Z
名字12
+442476******
阿富汗
1.415
9375
13.51666667
442
2020-09-01T10:27:49.6090000Z
名字13
+442476******
阿富汗
1.415
9377
2.716666667
442
2020-09-01T11:04:21.7850000Z
姓名14
+442476******
阿富汗
1.415
9378
1.6
442
2020-09-01T11:13:31.9810000Z
名字15
+442070******
阿富汗
1.415
9379
9.816666667
442
2020-09-01T11:46:53.4730000Z
姓名16
+442476******
阿兰群岛
247
0.283333333
442
2020-09-01T11:47:14.9110000Z
姓名17
+442476******
阿尔巴尼亚
0.537
355
0.866666667
442
2020-09-01T12:30:38.4380000Z
姓名18
+442476******
阿尔巴尼亚
0.537
3554
0.25
442
2020-09-01T12:30:59.5190000Z
姓名19
+442476******
阿尔巴尼亚
0.537
35567
0.283333333
442
2020-09-01T12:31:34.330000Z
姓名20
+442476******
阿尔巴尼亚
0.537
35568
0.283333333
442
2020-09-01T12:35:20.8430000Z
姓名21
+442476******
阿尔巴尼亚
0.537
35569
0.3
442
2020-09-01T12:37:36.5550000Z
姓名22
+442476******
阿尔及利亚
0.537
213
1.366666667
442
2020-09-01T12:42:07.9660000Z
姓名23
+447723******
阿尔及利亚
0.537
21321
1.466666667
447
2020-09-01T13:13:37.7610000Z
姓名24
+441926******
阿尔及利亚
0.537
21355
3.283333333
441
2020-09-01T13:44:57.3190000Z
姓名25
+442476******
阿尔及利亚
0.537
21356
0.15
442
2020-09-01T13:46:39.2640000Z
姓名26
+442476******
阿尔及利亚
0.537
21366
0.15
442
2020-09-01T13:58:14.1340000Z
姓名27
+442476******
阿尔及利亚
0.537
21369
6.2
442
2020-09-01T13:58:30.5560000Z
姓名28
+442476******
阿尔及利亚
0.537
21377
0.583333333
442
将表复制到workbbok并计算出以下代码:
=IF(LEFT($C1;4)=$H1;INDEX($A$1:$I$28;ROW($H1);5);"")
此代码检查电话号码的前4位是否等于H列中的号码。如果这是真的,那么它将获取H的行号,并从E获取值。如果它为假,则不写入任何内容
我不知道你是否打错了问题,但我看不出H列和F列之间有什么相似之处
我需要一个公式,可以有效地查找H列中拨打的国家代码,并查找F列中与之最相似(不需要精确)的国家代码
所以我为C列和H列编写了代码
但这段代码有一个缺点:H列中的前4位数字必须精确。这意味着你必须有这样的H形式:+442+447等
可以随意更改列和行的范围和名称,以匹配Excel表格
提示:如果要选择整列,必须编写a:a;B:B等输入公式。或者只需单击列的名称,它就会自动插入。行也一样。改进Excel的几点建议: 为了更好地使用Excel,我建议您将帮助列用于所需的子计算,因为没有人能够理解冗长的公式。更好的方法是:使用小型查找表作为参考。 您需要两个子栏:1用于国家代码(从电话号码中提取),1用于费率。
因此,我建议添加一个带有“国家代码”“国家名称”“费率”的表。这将是一个小表格,您可以从那里查找数据 请注意以下事项: