复杂多条件 Excel 公式
Complex Multiple Condition Excel Formula
我需要在 excel 中编写一个复杂的公式(或者如果有人对使用另一个程序有建议,我愿意接受!)基于项目存储位置的多个条件。
每个项目都有计算出的最小和最大标准水平,但可以存储在多个位置。该 par 的百分比是根据该项目的存储位置计算的(见下图)。例如:
项目 A 存储在中心位置 1、中心位置 2 和 2 个外部(也称为非中心)位置。项目 A 的总数量为 100。
根据我们的场景,我们会发现:
中心位置 1:70%
中心位置 2:20%
外部位置 1:10%/# 外部位置
外部位置 2:10%/# 外部位置
所以我们在每个位置对该项目的标准水平是:
中心位置 1:项目 A 的 70
中心位置 2:项目 A 的 20
外部位置 1:项目 A 的 5
外部位置 2:项目 A 的 5
左侧是每个项目 ID # 的存储位置。我需要根据以下场景将总的 Min 和 Max 分配到每个位置
我可以为每个项目手动完成此操作(存储在哪里,场景是什么,计算)但是有 1,500 个项目都存储在不同的地方。有没有我可以写的公式来计算物品的位置,以及物品有多少会进入其存储的每个区域?
我试过使用各种 IF 和匹配函数,但感觉不知道从哪里开始。
任何帮助都会很棒!
可以存储物品的不同场景。根据存储位置,每个位置将获得总数的不同百分比(上图右侧)
选项 1
像上面一样,对第 2 行的 M 和 N 列使用以下公式来构建您的参考文献 table,并复制您拥有的尽可能多的项目
=SUMPRODUCT(($C:$C=$J2)*(LEFT($A:$A)="c"))
=SUMPRODUCT(($C:$C=$J2)*(LEFT($A:$A)="e"))
之后,在您的单元格 M2 中使用以下等式并向下复制:
=IF($A2="external",IF(INDEX($J:$N,MATCH($C2,$J:$J,0),4)=1,0.2,0.1)*INDEX($J:$N,MATCH($C2,$J:$J,0),2)/INDEX($J:$N,MATCH($C2,$J:$J,0),5),IF(--RIGHT($A2)=1,IF(INDEX($J:$N,MATCH($C2,$J:$J,0),4)=1,IF(INDEX($J:$N,MATCH($C2,$J:$J,0),5)=0,1,0.8),0.7)*INDEX($J:$N,MATCH($C2,$J:$J,0),2),IF(INDEX($J:$N,MATCH($C2,$J:$J,0),5)=0,0.3,IF(INDEX($J:$N,MATCH($C2,$J:$J,0),4)=1,0.8,0.2))))
为了获得最大值,重复概念但改变
*INDEX($J:$N,MATCH($C2,$J:$J,0),2)
至
*INDEX($J:$N,MATCH($C2,$J:$J,0),3)
更改告诉它从第 3 列而不是第二列获取值。将有多个位置可以执行此操作。
选项 2
使用图片下方的公式在右侧构建您的 table,使其看起来如下所示。
建立列 M 和 N 作为选项 1
使用以下内容构建列 O:Q:
=IF(AND(M3=0,N3=0),0,IF(M3=2,0.7,IF(N3=0,1,0.8))*K3)
=IF(AND(M3=0,N3=0),0,IF(M3=2,IF(N3=0,0.3,0.2),0.8)*K3)
=IF(AND(M3=0,N3=0),0,IF(M3=1,0.2,0.1)*K3/N3)
在 R:T 中重复这些公式,将 K3 更改为 L3
然后在 D 和 E 列中使用各自的公式:
=INDEX($O:$Q,MATCH($C2,$J:$J,0),MATCH($A2,$O:$Q,0))
=INDEX($R:$T,MATCH($C2,$J:$J,0),MATCH($A2,$R:$T,0))
根据需要将公式复制下来。
OPTIONS 2 更分散可能更容易阅读和维护。
我需要在 excel 中编写一个复杂的公式(或者如果有人对使用另一个程序有建议,我愿意接受!)基于项目存储位置的多个条件。
每个项目都有计算出的最小和最大标准水平,但可以存储在多个位置。该 par 的百分比是根据该项目的存储位置计算的(见下图)。例如:
项目 A 存储在中心位置 1、中心位置 2 和 2 个外部(也称为非中心)位置。项目 A 的总数量为 100。
根据我们的场景,我们会发现:
中心位置 1:70%
中心位置 2:20%
外部位置 1:10%/# 外部位置
外部位置 2:10%/# 外部位置
所以我们在每个位置对该项目的标准水平是:
中心位置 1:项目 A 的 70
中心位置 2:项目 A 的 20
外部位置 1:项目 A 的 5
外部位置 2:项目 A 的 5
左侧是每个项目 ID # 的存储位置。我需要根据以下场景将总的 Min 和 Max 分配到每个位置
我可以为每个项目手动完成此操作(存储在哪里,场景是什么,计算)但是有 1,500 个项目都存储在不同的地方。有没有我可以写的公式来计算物品的位置,以及物品有多少会进入其存储的每个区域?
我试过使用各种 IF 和匹配函数,但感觉不知道从哪里开始。
任何帮助都会很棒!
可以存储物品的不同场景。根据存储位置,每个位置将获得总数的不同百分比(上图右侧)
选项 1
像上面一样,对第 2 行的 M 和 N 列使用以下公式来构建您的参考文献 table,并复制您拥有的尽可能多的项目
=SUMPRODUCT(($C:$C=$J2)*(LEFT($A:$A)="c"))
=SUMPRODUCT(($C:$C=$J2)*(LEFT($A:$A)="e"))
之后,在您的单元格 M2 中使用以下等式并向下复制:
=IF($A2="external",IF(INDEX($J:$N,MATCH($C2,$J:$J,0),4)=1,0.2,0.1)*INDEX($J:$N,MATCH($C2,$J:$J,0),2)/INDEX($J:$N,MATCH($C2,$J:$J,0),5),IF(--RIGHT($A2)=1,IF(INDEX($J:$N,MATCH($C2,$J:$J,0),4)=1,IF(INDEX($J:$N,MATCH($C2,$J:$J,0),5)=0,1,0.8),0.7)*INDEX($J:$N,MATCH($C2,$J:$J,0),2),IF(INDEX($J:$N,MATCH($C2,$J:$J,0),5)=0,0.3,IF(INDEX($J:$N,MATCH($C2,$J:$J,0),4)=1,0.8,0.2))))
为了获得最大值,重复概念但改变
*INDEX($J:$N,MATCH($C2,$J:$J,0),2)
至
*INDEX($J:$N,MATCH($C2,$J:$J,0),3)
更改告诉它从第 3 列而不是第二列获取值。将有多个位置可以执行此操作。
选项 2
使用图片下方的公式在右侧构建您的 table,使其看起来如下所示。
建立列 M 和 N 作为选项 1 使用以下内容构建列 O:Q:
=IF(AND(M3=0,N3=0),0,IF(M3=2,0.7,IF(N3=0,1,0.8))*K3)
=IF(AND(M3=0,N3=0),0,IF(M3=2,IF(N3=0,0.3,0.2),0.8)*K3)
=IF(AND(M3=0,N3=0),0,IF(M3=1,0.2,0.1)*K3/N3)
在 R:T 中重复这些公式,将 K3 更改为 L3
然后在 D 和 E 列中使用各自的公式:
=INDEX($O:$Q,MATCH($C2,$J:$J,0),MATCH($A2,$O:$Q,0))
=INDEX($R:$T,MATCH($C2,$J:$J,0),MATCH($A2,$R:$T,0))
根据需要将公式复制下来。
OPTIONS 2 更分散可能更容易阅读和维护。