是否有 Excel 函数将多个值相加,每个值乘以不同的查找值?
Is there an Excel function that sums multiple values each multiplied by a different lookup value?
我正在设置一个 Excel 工作簿,它将 material 用法作为输入。我希望能够将这些输入与我在 table 中输入的已知 material 组合相乘。
目前我一直在做=usage material1*vlookup(material1,material table,index,false)+usage material 2*vlookup(material2,material table,index,false).....
考虑到我有大量 material 用法,是否有更简单的方法来执行此操作?我真的很想避免在同一个单元格中重复相同的公式多达 30 次,只是为了将所有内容相加。
我想要一个公式,它会自动乘以 material 用法 * 查找组合并对所有 material 的输入求和这个公式。
这是另一种方式...
=SUMPRODUCT(SUMIF(F6:F8,A6:C6,G6:G8),A7:C7)
...需要按 ENTER 确认。
希望对您有所帮助!
快速但有点复杂的解决方案:
{=SUM(INDEX(G1:G4,N(IF(1,MATCH(A1:A5000,F1:F4,0))))*B1:B5000)}
另一个解决方案:
{=SUM(LOOKUP(A1:A5000,F1:F4,G1:G4)*B1:B5000)}
如评论中所述:查找 table 必须按升序排序。此外,如果查找值不存在匹配项,它会找到一个近似匹配项,这可能不是所需的结果。
使用 5000 次公式执行的速度测试:
{=SUM(LOOKUP(A1:A5000,F1:F4,G1:G4)*B1:B5000)}
5.237412 秒过去 |已过去 16,325,977 个刻度
{=SUM(INDEX(G1:G4,N(IF(1,MATCH(A1:A5000,F1:F4,0))))*B1:B5000)}
7.941025 秒过去了 |已过去 24,753,637 个刻度
=SUMPRODUCT(SUMIF(F1:F4,A1:A5000,G1:G4),B1:B5000)
12.338439 秒过去 | 38,461,185 个滴答已过去
我正在设置一个 Excel 工作簿,它将 material 用法作为输入。我希望能够将这些输入与我在 table 中输入的已知 material 组合相乘。
目前我一直在做=usage material1*vlookup(material1,material table,index,false)+usage material 2*vlookup(material2,material table,index,false).....
考虑到我有大量 material 用法,是否有更简单的方法来执行此操作?我真的很想避免在同一个单元格中重复相同的公式多达 30 次,只是为了将所有内容相加。
我想要一个公式,它会自动乘以 material 用法 * 查找组合并对所有 material 的输入求和这个公式。
这是另一种方式...
=SUMPRODUCT(SUMIF(F6:F8,A6:C6,G6:G8),A7:C7)
...需要按 ENTER 确认。
希望对您有所帮助!
快速但有点复杂的解决方案:
{=SUM(INDEX(G1:G4,N(IF(1,MATCH(A1:A5000,F1:F4,0))))*B1:B5000)}
另一个解决方案:
{=SUM(LOOKUP(A1:A5000,F1:F4,G1:G4)*B1:B5000)}
如评论中所述:查找 table 必须按升序排序。此外,如果查找值不存在匹配项,它会找到一个近似匹配项,这可能不是所需的结果。
使用 5000 次公式执行的速度测试:
{=SUM(LOOKUP(A1:A5000,F1:F4,G1:G4)*B1:B5000)}
5.237412 秒过去 |已过去 16,325,977 个刻度
{=SUM(INDEX(G1:G4,N(IF(1,MATCH(A1:A5000,F1:F4,0))))*B1:B5000)}
7.941025 秒过去了 |已过去 24,753,637 个刻度
=SUMPRODUCT(SUMIF(F1:F4,A1:A5000,G1:G4),B1:B5000)
12.338439 秒过去 | 38,461,185 个滴答已过去