excel 如何在拆分数组中连接扩展单元格区域的文本?

juzqafwq  于 2023-03-04  发布在  其他
关注(0)|答案(1)|浏览(106)

我正在创建一个每日计划,以分配员工处理客户电话(C)或电子邮件(E)。我希望将规则应用于工作表中的C/E分配,这样经理就不必自己进行调整。
在我的WIP计划中,有4个零件A到D;

  • A-员工数据,包括姓名、开始/结束时间、休息时间、技能等
  • B-Helper "table"根据之前的小时处理规则,并提供每个员工每小时的数值结果
  • C-计划"表"将C分配给所有员工,但成绩最低的员工将获得E
  • D-包含B部分中处理的每个规则要添加或减去的金额

我在下面链接了一个简化的时间表示例的截图。B部分已被拆分为B1和B2,以帮助显示正在进行的工作。
B部分中的公式首先确定员工是否在其工作时间内,此单个公式会溢出到包含一天中每个小时的所有员工的整个范围[屏幕截图中的 * B1 *]。
现在,我们假设一条规则是,每个员工只能收到3小时的电子邮件(E)每天。我计划这样做的方式是让B部分加入所有小时的文本,直到正在处理的小时[* B2 * 在截图中],从中可以计算E的数量。如果E的数量等于3,则将该员工的得分加10。如果剩下的员工得分为零,那么C部分将为其中一人分配E,为得分为10的员工分配C。
在我遇到这个问题之前,其他规则都很顺利,我认为员工是否在那个时间工作是个问题。
我想要的结果显示在 * B2 *,但我得到的是 * X *,它从左到右,从上到下连接整个范围的文本。
我知道在Excel365中使用@,但我使用的是Mac OS设备,它不起作用。最终产品将在Windows上运行,但我更喜欢Mac设置来做这类工作。
注:
1.假设在两个或多个分数相同的情况下,E将按雇员姓名的字母顺序分配,
1.我决定不使用COUNTIF(),因为对于多个规则,处理一个合并文本似乎比处理这个和那个更容易,
1.我更喜欢保留溢出数组,因为在多个列/行之间拖动它很麻烦,尤其是在开发这个数组时,
1.无VBA或宏(IT禁止),
1.无易失性功能,
1.这是在现有软件包中进行调度的一个选项,也是我喜欢解决的那类难题,但我遇到了我的对手!
截图:

我尝试了很多公式,最接近的一个公式可以逐行完成我想要的操作,但是当我将公式文本引入到生成拆分数组的公式中时,它会连接整个范围,如 * X * 所示,我找不到停止的方法。
例如:
=步进(扫描("",旋转范围,(λ(a,v,a & v))),1,)
在多行上向下拖动时效果很好,但在溢出数组中,它会联接所有内容。
我已经尝试了太多的组合来列出它们,但它们以各种形式包含了以下一个或多个功能:index(),take(),chooserows(),row(),rows(),hstack(),makearray(),match(),xlookup(),find(),textjoin(),concat(),scan()等等。
我已经花了更多的天在这上面比我愿意承认,我已经通过了所以,谷歌,因为你会期望以及我自己的测试和实验,但我不能过去这一个!

yjghlzjz

yjghlzjz1#

A减少/扫描

=LET(range,RotaRange,
    DROP(REDUCE("",SEQUENCE(ROWS(range)),LAMBDA(rRes,rr,
VSTACK(rRes,SCAN("",INDEX(range,rr,0),LAMBDA(sRes,sVal,sRes&sVal))))),1))

可能需要删除RotaRange的最后一列:

=LET(range,Drop(RotaRange,,-1),
    DROP(REDUCE("",SEQUENCE(ROWS(range)),LAMBDA(rRes,rr,
VSTACK(rRes,SCAN("",INDEX(range,rr,0),LAMBDA(sRes,sVal,sRes&sVal))))),1))

相关问题