ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 太阳之子

[Excel 函数与公式] [第125期]火车票余票查询[开贴待总结]

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2019-2-14 11:47 | 显示全部楼层
本帖最后由 丢丢表格 于 2019-2-14 11:49 编辑

  
解 题 思 路
  
  
一、
  
  
先计算出各站空位数
  
  
计方法是:
  
  
1028+本站及前面各站的下车人数-本站及前面各站上车的总数
  
  
计算公式为:
  
  
=1028+MMULT(N(ROW(2:7)>COLUMN(A:F)),SUMIF(A:A,"*"&F2:F7,B:B)-SUMIF(A:A,F2:F7&"*",B:B))
  
  
如 G2:G7 所示
  
  
二、
  
  
再计算该区间 最大占座数,也就是最小空位数。(虽有旅客中途有下车,但必须考虑该上车点的人员占位)
  
  
计算方法是:
  
  
如 郑州-广州
  
  
=MMULT(COUNTIF(OFFSET(F2,,,ROW(1:6)),"*"&MID(A2,(LEN(A2)-1)^{0,1},2)&"*"),{1;-1})
  
  
如 H2:H7 所示,其中为1 值的 表示 需考虑的这几个站的最小空位。
  
  
从 F2:H7 表中看出 武汉的 61 为最小值  ,所以【郑州-广州】的余票为 61张
  
  
三、
  
  
合并两个公式:
  
  
=MIN(IF(MMULT(COUNTIF(OFFSET(F2,,,ROW($1:$6)),"*"&MID(A2,(LEN(A2)-1)^{0,1},2)&"*"),{1;-1}),1028+MMULT(N(ROW(2:7)>COLUMN(A:F)),SUMIF(A:A,"*"&F2:F7,B:B)-SUMIF(A:A,F2:F7&"*",B:B))))
  
  
四、
  
  
优化公式:
  
  
=MIN(ABS(11028+MMULT(N(ROW($2:$7)>COLUMN(A:F)),MMULT(SUMIF(A:A,"*"&F$2:F$7&{"-*",""},B:B),{-1;1})-ISNUMBER(FIND(F$2:F$7,A2))/1%%)))
  


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

评分

10

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-2-15 20:24 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-2-17 10:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 anonym 于 2019-2-17 16:29 编辑

大家的回复都很精彩,特别是海鲜、丢丢、micch和尛ぃ謉,几乎异曲同工。区别是,单个MMULT先计算出了如原题目说明中列出的中间结果“各站空位数”,而双重MMULT则直接得出最终结果。单个MMULT是普通公式下拉,双重MMULT是数组公式下拉。

我在原题目的基础上做了一个变化,将原来的已知的“已售车票数”和待求的“余票数”的普通二维表格,改成了交叉二维表格。感觉这样对于实际应用更易于输入参数的增缩,不必生成“站点区间”列。太阳的题目出得很好,但为了考核,有的时候考核出题和实际应用的目的和效果不是完全一致。

我把附件发在“Excel函数与公式”版丢丢发的推荐贴里了,链接地址http://club.excelhome.net/thread-1455224-5-1.html

求关注,求拍砖!

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-2-24 20:13 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
相对我的也算一种思路,所以对我自己的也写个思路说明,然后由于个人原因想换这个号做说明吧。。
最后感谢下太阳之子出的这2题。。
另一题原本没注意,在验证的时候发现算是第一次遇到属于“二分法”的题呢。
所以对于excel函数方面好像也够了呢。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-2-27 12:58 | 显示全部楼层
尛ぃ謉 老师的过程看到公式的时候也是直接分解到单元格区域才弄清楚,一开始也想到多行多列数组相互mmult,但是脑子不够用,最后还是用了多行多列数组与单列数组的mmult,就像是差了点空间感觉的意思

TA的精华主题

TA的得分主题

发表于 2019-3-6 11:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 hcm19522 于 2019-3-7 14:28 编辑

SOYYY  引用數據錯誤

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-3-18 14:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

你好老师,想问一下ROW(2:7)>COLUMN(A:F) 在这里是什么意思

TA的精华主题

TA的得分主题

发表于 2019-3-18 14:46 | 显示全部楼层
向阳麦田 发表于 2019-3-18 14:28
你好老师,想问一下ROW(2:7)>COLUMN(A:F) 在这里是什么意思

多看看 F9 就会明白的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

TA的精华主题

TA的得分主题

发表于 2019-5-2 12:09 | 显示全部楼层
本帖最后由 wangg913 于 2019-5-2 21:17 编辑

分评完了,本期参加的人真多,几乎大家都得分了。

技术分按楼主的认定评分的,财富分是随机给的。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-5-8 15:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
现在不是以前每月一赛!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-21 16:55 , Processed in 0.033671 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表