对于每个单元格值:重复一系列值

问题描述 投票:0回答:1

我的任务是创建一个电子表格来跟踪给定日期范围(通常为 1 周)内每天的员工工作时间。对于该范围内的每一天,我需要写出所有员工的姓名,然后在他们的名字旁边写下他们的工作时间。本质上,我需要将每个员工的名字写出尽可能多的次数。我想象它看起来有点像这样,日子、日期和名字都会自动为我写出来。

-- 示例数据 --

日期 - 9/10/2023 | 2023 年 9 月 11 日 | 2023 年 9 月 12 日 | 2023 年 9 月 13 日 | 2023 年 9 月 14 日 | 2023 年 9 月 15 日 | 2023 年 9 月 16 日

- 周日 |星期一 |星期二 |星期三 |星期四 |星期五 |星期六

员工名单 - Jack |唐纳德 |迈克|菲利普

2023 年 9 月 10 日 周日
杰克 8小时
唐纳德 4小时
迈克 0 小时
菲利普 8小时
2023 年 9 月 11 日 星期一
杰克 0 小时
唐纳德 4小时
迈克 8小时
菲利普 0 小时
2023 年 9 月 12 日 星期二
杰克 2小时
唐纳德 8小时
迈克 0 小时
菲利普 8小时

-- 每天如此 --

我对 Google Sheets 有点陌生,但我花了几个小时来解决这个问题,并且已经克服了大部分障碍 - 除了我必须自动生成列表的部分。

到目前为止-

我使用此公式自动生成所有日期:

// Writes all the dates starting from the given start date (E2), for as many given days (D2) =ARRAYFORMULA(TO_DATE(SEQUENCE(D2, 1, E2, 1)))
我使用这个公式自动生成了所有

天: //Writes all the days for the each of the corresponding dates, starting from the start date (E2), for as many given days (D2) =ARRAYFORMULA(switch(WEEKDAY(SEQUENCE(D2, 1, E2, 1)), 1, "Sunday", 2, "Monday", 3, "Tuesday", 4, "Wednesday", 5, "Thursday", 6,"Friday", 7, "Saturday"))

我使用以下公式对所有
工人姓名

参考 // Gets a list of all the workers by using an indirect reference by using the counted items (D5) + where the list starts (E5) =ArrayFormula(E5:INDIRECT("E"&ROW(E5)+D5)&{""})

我知道我拥有完成这项工作所需的所有基本信息,但我只是不知道如何将它们组合在一起以准确地制作出我需要的东西。非常感谢您的帮助,因为这个问题超出了我目前的知识范围。希望我提供了足够的细节!

我尝试研究类似的问题和人们拥有的不同解决方案,

这篇文章

似乎是我需要的一切,但它太复杂了,我无法弄清楚;我最终得到的只是各种不同的错误。 我也尝试过

重复并展平数组

,但这并没有达到我想要的效果,因为它列出了所有日期,然后是所有日期,然后是所有员工写在一个列中,这使得它几乎没用。 最终看起来有点像这样:

2023 年 9 月 11 日

2023 年 9 月 12 日

2023 年 9 月 13 日

2023 年 9 月 14 日

...

周日

星期一

星期二

...

杰克

唐纳德

迈克

菲利普

等等...

这是我的电子表格的副本

,具有编辑器访问权限,以及手动制作的示例。我非常感谢任何答案!

--

编辑

:已找到

解决方案!非常感谢所有的回复。请尽情使用它!

编辑

:我相信上面的链接有一些问题,所以这里有一个更新版本 此外,这是一个具有编辑器访问权限的版本

。享受吧!

此问题已于 2023 年 12 月由用户“AdministrativeGift15”在
google-sheets lambda google-sheets-formula spreadsheet
1个回答
0
投票
上解决。

在 J 列中输入时间

    在单元格 H3 中输入公式(结果将填充 H 列和 I 列)。
  • =REDUCE(TOCOL(, 1), B3:B19, LAMBDA(tot, date, VSTACK(tot, IF(LEN(date), IFERROR(VSTACK(TEXT(date, "m/d/yyyy dddd"), HSTACK(,VSTACK("Name",TOCOL(D3:D12, 1))))), TOCOL(, 1)))))

样品

reddit


© www.soinside.com 2019 - 2024. All rights reserved.