首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >根据项目日期将小时费率添加到行项目中

根据项目日期将小时费率添加到行项目中
EN

Web Applications用户
提问于 2023-03-24 15:55:39
回答 1查看 17关注 0票数 0

你好,我正在尝试建立一个使用google和google的系统来跟踪和分析我的企业员工的小时数和工资。

我的想法是:

使用一个简单的谷歌表单,让员工提交他们的每日小时。(名称将是一个动态列表,使用表单Ranger Addon,它将由一个google表填充,其中包含所有员工的名字。)

Google表单将链接到此Google工作表,该表包含以下列: Employee _ Date、Date、Start time、End time,然后是计算出的列、总计小时数和小时费率。

这就是我陷入困境的地方!​,我希望每小时的薪酬是一个数组式,并且是基于不同纸张的值的动态的。听我解释!

员工的工资可能会在全年发生变化,我希望每个员工每天提交的时薪线金额是动态的,根据员工的变动率计算。

我想有一个单独的表格,在那里,我将填写员工的每小时工资和每次工资变动。这会是这样的。

因此,最后:

如何编写数组公式,根据行中的日期(提交的日输出)返回员工时薪?

我在想某种嵌套的XLOOKUP,但我完全被困住了。

帮助善良的人!

谷歌表单谷歌单张

EN

回答 1

Web Applications用户

发布于 2023-03-24 19:04:50

公式

此公式将根据工作日期返回时薪,忽略不适用的未来加薪。

代码语言:javascript
复制
=LAMBDA(r, INDEX(r, XMATCH(dateWorked, INDEX(r,, 2), -1), 3))
 (SORT(FILTER(rateTable,INDEX(rateTable,, 1)=employee),2, FALSE ))

条件

  • "dateWorked“是指工作时间(形式)的一天;
  • "rateTable“是一个带有的3列范围
    1. 第1栏中的雇员姓名;
    2. 第2栏中的日期(新小时费率的生效日期);
    3. 第3栏中的小时费率

  • " employee“是雇员的姓名(在表格中)

Notes

  1. LAMBDA用于避免重复初始排序和筛选,并以r代替。
  2. 为员工筛选"rateTable“,然后按日期按降序排序:r
  3. XMATCH用于在r中查找与工作日期匹配的日期或较旧的日期。
  4. 索引返回与XMATCH-ed日期相同行中的时薪。

BYROW版本(单一公式)

此版本采用上述公式,并使用拜罗瓦对name列(A列)中的每一行执行相同的兰卜达公式。

  • 一个命名的范围employee被创建为A2:A500
  • 拜罗瓦将每一行employee传递给兰卜达函数,其中当前行由任意选择的名称e表示。
  • 如果e为空(没有输入数据),则跳过公式:IF(e<>"", <formula>, IFERROR(1/0) (``IFERROR(1/0)是返回真正空白结果的工作表技巧);
  • 要从当前行(例如A2)获取"employee“,我现在可以在公式中使用e
  • 对于公式中的"dateWorked“,我可以使用相同的e变量,但可以使用偏移量来指示数据与"employee”相关的位置。在"dateWorked“中,0 rows1 column远离"employee”列:OFFSET(e, 0 , 1)
代码语言:javascript
复制
=BYROW(employee, LAMBDA(e, 
   IF(e<>"", 
      (LAMBDA(r, INDEX(r, XMATCH(OFFSET(e,0,1), INDEX(r,, 2), -1), 3))
        (SORT(FILTER(rateTable,INDEX(rateTable,, 1)=e),2, FALSE ))),
      IFERROR(1/0))
))
票数 0
EN
页面原文内容由Web Applications提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://webapps.stackexchange.com/questions/169923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档