excel - Excel 表格中时间值的随机分布 - 电网建模
问题描述
我正在研究电动汽车充电负载的模型。我附上了一个指向 Excel 工作簿的链接,以便您更好地理解。
B 列包含随机时间值 G 到 P 列代表房屋,每个房屋可以有 1 辆车。因此,每次值都需要分布在一列中。现在,当汽车插入电源时,它的负载对于 3 个电池保持恒定。
我希望 excel 随机分配这些汽车,例如 4 辆汽车到 4 座房子,而其他的则留空。
我能想到的是,每次分配一个随机房屋,然后使用IF
带有函数的公式AND
将随机时间与时间序列匹配,第二个条件将随机房屋与第 1-10 列匹配。我面临的问题是,公式给出了一个值错误,并且只适用于在它们前面有随机生成时间的行截图。我知道我错过了一件非常小的事情。请帮我找到它
问候
解决方案
=IF(ISNA(MATCH(G$5,$C$6:$C$9,FALSE)),"",IF(AND(INDEX($B$6:$B$9,MATCH(G$5,$C$6:$C$9,FALSE))>=$F6,INDEX($B$6:$B$9,MATCH(G$5,$C$6:$C$9,FALSE))<=$F6+TIME(0,30,0)),11,""))
中的两个元素在AND
C 列中查找门牌号,并在 B 列中返回相应的时间。
第一个元素将 F 中的时间与该时间进行比较。第二个元素将时间 + 30 分钟与 F(三个单元格)进行比较。如果介于这两次之间,则为 11。
确保有问题的ISNA
房子在名单上。您也可以使用IFERROR
,但我更喜欢ISNA
.
更新
如果您希望这些值环绕,则需要与OR
第二天进行比较。
=IF(ISNA(MATCH(G$5,$C$6:$C$9,FALSE)),"",IF(OR(AND(ROUND($F6,5)>=ROUND(INDEX($B$6:$B$9,MATCH(G$5,$C$6:$C$9,FALSE)),5),ROUND($F6,5)<=ROUND(INDEX($B$6:$B$9,MATCH(G$5,$C$6:$C$9,FALSE))+TIME(0,30,0),5)),AND(ROUND($F6+1,5)>=ROUND(INDEX($B$6:$B$9,MATCH(G$5,$C$6:$C$9,FALSE)),5),ROUND($F6+1,5)<=ROUND(INDEX($B$6:$B$9,MATCH(G$5,$C$6:$C$9,FALSE))+TIME(0,30,0),5))),11,""))
该公式结构看起来像
=If(isna(),"",if(or(and(today,today),and(tomorrow,tomorrow)),11,"")
这个公式已经变得太大了。如果将三个电压增加三倍,那将是巨大的。您应该考虑在 VBA 中编写 UDF。计算起来不会那么快,但可能更易于维护。
如果你想坚持一个公式,你可以把瓦数放在门牌号码上方的第 4 行。然后在另一个表格中,列出要充电的瓦数和分钟数。所以,比如说,B12:C14 你有
3.7 120
11 30
22 15
现在您11
在公式中的位置,您将拥有G$4
,并且您拥有的两个放置TIME(0,30,0)
,您将拥有TIME(0,INDEX($C$12:$C$14,MATCH(G$4,$B$12:$B$14,FALSE)),0)
。我重新安排了一些东西以使其更“可读”(但它仍然很困难),这是最终的公式
=IF(ISNA(MATCH(G$5,$C$6:$C$9,FALSE)),"",IF(OR(AND(ROUND($F6,5)>=ROUND(INDEX($B$6:$B$9,MATCH(G$5,$C$6:$C$9,FALSE)),5),ROUND($F6,5)<=ROUND(INDEX($B$6:$B$9,MATCH(G$5,$C$6:$C$9,FALSE))+TIME(0,INDEX($C$12:$C$14,MATCH(G$4,$B$12:$B$14,FALSE)),0),5)),AND(ROUND($F6+1,5)>=ROUND(INDEX($B$6:$B$9,MATCH(G$5,$C$6:$C$9,FALSE)),5),ROUND($F6+1,5)<=ROUND(INDEX($B$6:$B$9,MATCH(G$5,$C$6:$C$9,FALSE))+TIME(0,INDEX($C$12:$C$14,MATCH(G$4,$B$12:$B$14,FALSE)),0),5))),G$4,""))
推荐阅读
- javascript - 抛出具有不同名称的回调函数
- python - 当尚未分配实际值时,python应该将类变量初始化为虚拟值吗?
- macos - 翻转 macOS 金属质感
- java - 使用带有 for 循环更改数据的 switch 语句检索
- python - Firebase Firestore 事务和线程 - python
- python - 更新不改变 PySimpleGUI 中的可见性
- powerbi - Power BI 堆叠条作为具有里程碑的时间线
- python - 从二进制到base 48的转换
- python-3.x - pyimport运行python3程序出错
- amazon-web-services - AWS SNS 从 Ec2 独立 Java 应用程序推送到 android 手机