AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-11820046

Mark S.'s questions

Martin Hope
Mark S.
Asked: 2025-01-09 04:55:22 +0800 CST

仅将相关月份的公式按行和列溢出到 sumifs 中

  • 6

我有一张格式松散的表格,其中人员在顶部,任务在行中,还有一列表示开始日期,一列表示结束日期。用户将在给定的子任务中输入预期的小时数,然后它将汇总到任务本身中。我能够得到按行求和的结果,除以查找的月份数,但无法将值正确分布在相关月份中。

这就是数据的结构。

样本

要求制作一个表格,列出任务和子任务,并计算相关月份内完成给定任务所花费时间的直线平均值。(总计/月份数 -> 开始日期和结束日期之间的月份数)。

例如,在这里您可以看到我从总任务中过滤掉子任务,并将它们各自的总小时数分散到预计发生任务的月份中。

预期结果

我现在想集中讨论下表,因为上表是从那里总结出来的,所以我想我可以相应地调整其余部分。

现在,我从标题中该任务/日期的每个任务/月总数中取出 sumifs,只是为了让它溢出到列中。但是,这会将相同的值分布到所有月份的任务中,而不仅仅是相关月份。所以我尝试了一个 If 来检查日期是否在开始日期和结束日期之间,但它不会溢出。如果我单独这样做,它不能正确验证逻辑。

我还尝试使用 LET 语句来定义开始日期和结束日期,然后检查月份标题溢出范围以查看该值是否介于这些日期之间,如果是,则将该值乘以 1 或 0 以尝试将不相关的值归零。

当我尝试根据行的 xlookup 结果检查列并将其应用于交点时,这就是当前发生的情况。

发生了什么

下面是一个标记表,可以帮助您了解基础知识。

我的任务过滤公式:=FILTER(A5:A16,MOD(A5:A16,1)<>0)

我的日期标题公式:=DATE(YEAR(MIN(B5:B16)),SEQUENCE(1,DATEDIF(MIN(B5:B16),MAX(C5:C16),"M")+1,MONTH(MIN(B5:B16)),1),1)

人 1 人 2 第 3 人 第四人 第 5 人
100美元 $ 150 $ 200 $ 175 $ 95
任务 开始 结尾 月份 全部的
1 2024 年 1 月 1 日 2024 年 8 月 1 日 8 5 15 二十五 12 10 67
1.1 2024 年 3 月 1 日 2024 年 4 月 1 日 2 5 5 10 20
1.2 2024 年 5 月 1 日 2024 年 7 月 1 日 3 15 12 二十七
1.3 2024 年 5 月 1 日 2024 年 8 月 1 日 4 20 20
2 2024 年 7 月 1 日 2024 年 10 月 1 日 4 20 20 三十 - 60 130
2.1 2024 年 7 月 1 日 2024 年 9 月 1 日 3 20 20 40
2.2 2024 年 9 月 1 日 2024 年 10 月 1 日 2 三十 60 90
3 2024 年 6 月 1 日 2024 年 10 月 1 日 5 20 - 四十五 55 三十 150
3.1 2024 年 6 月 1 日 2024 年 7 月 1 日 2 10 10
3.2 2024 年 9 月 1 日 2024 年 10 月 1 日 2 10 15 二十五
3.3 2024 年 9 月 1 日 2024 年 10 月 1 日 2 二十五 二十五
3.4 2024 年 9 月 1 日 2024 年 10 月 1 日 2 三十 三十 三十 90
excel
  • 2 个回答
  • 71 Views
Martin Hope
Mark S.
Asked: 2024-08-03 05:06:29 +0800 CST

带溢出数组输入的多条件 Xlookup

  • 5

我有一个数组,其中包含几列溢出范围。我需要使用每一列执行多条件 xlookup(或类似的公式/结果),以提供结果的溢出范围。我使用 sumifs 来获取结果,但当单元格为空时,我希望它保持为空,而当单元格为空时,sumifs 结果给出 0%。

这个的实际应用将放入一个 LET 公式中,并且 xlookup 中的每个溢出都是一个 choosecols 输出。

=XLOOKUP(1,($C$3#=$C$12:$C$15)*($D$3#=D12:D15),$E$12:$E$15,"",0)

=SUMIFS($E$12:$E$15,$C$12:$C$15,C3#,$D$12:$D$15,D3#)

图中边框表示溢出阵列。预期结果是手动输入的。

图像

excel
  • 2 个回答
  • 28 Views
Martin Hope
Mark S.
Asked: 2024-05-14 23:28:09 +0800 CST

跨多列溢出范围求和,使用溢出公式将前 x 和组保留在一起

  • 6

总之,我的目标是获得溢出公式的摘要输出,该公式生成前 x 行,但最后一行对所有其他行进行分组,以便总数将与数据源相关联。(第一张图显示了它的工作原理,第二张图显示了我想要的效果。包含用于测试的 Markdown 表。)如果有更好的方式来表达标题,请告诉我,我会进行调整。

源表是通过针对数据透视表的溢出公式生成的。我这样做是为了在开始组合字段之前获得我想要关联的总数,而数据透视表没有一个干净的解决方案(要对前 x 个字段进行分组,您需要手动选择它们,但我需要它是动态的)。

在图像中,第一个表(左侧)是所有溢出公式。生成顶部的部门编号和侧面下方的 ID,以及值。

第二个表试图取前 5 名,然后将前 5 名之后的所有内容汇总到“其他”中;然而,正如您所看到的,这是获取 ID 6 的数据,而不是大于 6 的所有数据。我尝试了几种方法,但无法让它在执行此操作的同时立即对所有列求和。一种解决方案要求我复制附加列的公式,或者在数量较少时将其删除,因为这不是静态的。

约束:第一个表是根据溢出公式生成的,行数和列数不是静态的,因此第二个表需要考虑到这一点。对于示例,我使用了Sequence()标题和行,以及值的随机公式以获得一些数据。

该公式适用于除“其他”行之外的所有行:

=MAKEARRAY( ROWS(I2#), COLUMNS(K1#), LAMBDA(r,c,SUM(C2#*--(A2#=INDEX(I2#,r))*--(C1#=INDEX(K1#,1,c)) )))

我尝试将 K2 中的公式修改为下面的结果,但结果是#N/A:

=MAKEARRAY( ROWS(I2#), COLUMNS(K1#), LAMBDA(r,c,SUM(C2#*--IF(I2#>5,(A2#>=INDEX(I2#,r)),(A2#=INDEX(I2#,r)))*--(C1#=INDEX(K1#,1,c)) )))

在此输入图像描述

这是所需的输出:

在此输入图像描述

(Markdown 用于测试)

编号/部门 姓名 1 2 3 4 5
1 汤姆 2.00 3.25 4.50 5.75 7点
2 乔 2.75 4.00 5.25 6.50 7.75
3 克里斯汀 3.50 4.75 6.00 7.25 8.50
4 标记 4.25 5.50 6.75 8.00 9.25
5 本 5.00 6.25 7.50 8.75 10:00
6 简 5.75 7点 8.25 9.50 10.75
7 凯里 6.50 7.75 9.00 10.25 11.50
8 杰克 7.25 8.50 9.75 11点 12.25
9 玫瑰 8.00 9.25 10.50 11.75 13:00
10 米歇尔 8.75 10:00 11.25 12.50 13.75
11 迈克尔 9.50 10.75 12:00 13.25 14.50
12 保罗 10.25 11.50 12.75 14:00 15.25
13 何塞 11点 12.25 13.50 14.75 16:00
14 珊达 11.75 13:00 14.25 15.50 16.75
15 埃里克 12.50 13.75 15:00 16.25 17.50

这是帮助我创建第一个公式的问题

excel
  • 2 个回答
  • 43 Views
Martin Hope
Mark S.
Asked: 2024-01-27 00:14:59 +0800 CST

非相邻溢出或多条件查找使用多列溢出范围作为查找键和另一个单元格

  • 5

我有一张工作表,其中部门位于顶部 (H43),并且我使用排序、唯一和筛选嵌套公式从命名表中提取 3 列。过滤器查看该部门并提供所有 ID、员工姓名和头衔。我需要的附加列也在该表中,但不在相邻列“状态”中。我需要的列的列号依次为 7、8、9、5。

我想尽量减少拖动公式的维护,所以我希望有两件事之一:我可以使用溢出公式来拉动额外的非相邻列,或者进行多条件查找(因为这里有重复的 ID)引入就业状态并使其在泄漏时自动填充。

_Pop 标头是,目前我正在拉最后 3 个,但想要员工状态。最后 3 列正在从第一组列中提取数据,但状态很好,所以我不想移动它,或不必要地重复它。

部门 员工 身份证号(姓名) 办公室 员工状况 全职工作时间 员工ID 姓名 标题

我尝试过的公式:

溢出:

此公式可以很好地提取最后 3 列,但不能提取附加状态列

=SORT( UNIQUE( FILTER( _Pop[[EmployeeID]:[Title]], _Pop[department]='Annualized Hours (2)'!$H$43)),2,1)

这个公式给出了奇怪的行为

=SORT( UNIQUE( FILTER( _Pop, _Pop[department]='Annualized Hours (2)'!$H$43),{7,8,9,5}),2,1)

这次尝试给出了#Value!错误。

=SORT(UNIQUE(FILTER(INDEX(_Pop, , {7,8,9,5}), _Pop[department]='Annualized Hours (2)'!$H$43)),2,1) =SORT(UNIQUE(FILTER(INDEX(_Pop[#Data], , {7,8,9,5}), _Pop[department]='Annualized Hours (2)'!$H$43)),2,1)

这给出了列,但不是按照我需要的顺序:

=SORT(UNIQUE(FILTER(FILTER(_Pop, _Pop[department]='Annualized Hours (2)'!$H$43), (COLUMN(_Pop)=COLUMN(INDEX(_Pop,,7)))+(COLUMN(_Pop)=COLUMN(INDEX(_Pop,,8)))+(COLUMN(_Pop)=COLUMN(INDEX(_Pop,,9)))+(COLUMN(_Pop)=COLUMN(INDEX(_Pop,,5)))),FALSE,FALSE),3,1,FALSE)

在 A1:D1 中创建助手,以防它不喜欢这些常量。没有运气

=INDEX(_Pop,MATCH('Annualized Hours (2)'!$H$43,_Pop[department],0),MATCH(COLUMN(A1:D1),COLUMN(INDEX(_Pop,,{7,8,9,5})),0))

查找:

=XLOOKUP(INDEX(I44#,,1), MATCH(TRUE,($H$43=_Pop[department])*(INDEX(I44#,,1)=_Pop[EmployeeID]),0),_Pop[Employee Status],0,0)

excel
  • 2 个回答
  • 29 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve