我需要一个谷歌表格单元格公式,以便在每次多行和多列出现值时显示

I need a google sheets cell formula to display every time a value occurs over multiple rows and columns

提问人:inasimplerhyme 提问时间:11/16/2023 更新时间:11/19/2023 访问量:64

问:

我有一个日历月的网格,第一行的日期和左列的一天中的时间。我需要一个单元格公式,该公式将列出值的每个实例的天数。例如,如果“名称 1”出现在 1 月 1 日、3 日和 5 日,则单元格将指示“1 月 1、3、5 日”。我应该链接我尝试创建的一个例子。(这是我向 Stackoverflow 提出的第一个问题,如果格式错误,请深表歉意。

发短信

我实际上有一些东西可以工作,但它非常长,需要辅助列,并且将来绝对是一个巨大的痛苦,因为我计划创建一个跨越字面数年的时间表。我希望它尽可能简单。

我目前的公式包括 COUNTIFS 和在数字之间创建逗号的复杂方法。(这是我的主要问题。我猜像 ARRAYFORUMLA 这样的东西可能与 FILTER 和 TEXTJOIN 结合起来会更容易,但我不知道怎么做。谢谢你的任何想法!

google-表格-公式

评论

0赞 rockinfreakshow 11/16/2023
as I'm planning on creating a schedule that spans literal years如果是这样,如果输入数据本身包含多个月+年,预期输出会是什么样子?

答:

0赞 Lerato Shabalala Ntombikayise 11/16/2023 #1

你试过这个公式吗: =TEXTJOIN(“,”, TRUE, IF($B$2:$ZZ$100=“Name 1”, TEXT($B$1:$ZZ$1, “mm d”), “”)) ?

评论

0赞 inasimplerhyme 11/16/2023
不,我没有,谢谢你的回复!但不幸的是,它似乎不起作用。它说,“找不到匹配的值。若要获取整个范围的值,请使用 ARRAYFORMULA 函数。
0赞 inasimplerhyme 11/16/2023
更新:还没有解决它,但我能够添加 Arrayformula 让它输出一些东西。使用“=TEXTJOIN(”,“, TRUE, (ARRAYFORMULA(IF($B$2:$I$18=”Name 1“, TEXT($B$1:$I$1, ”d“), ”)))“,它现在显示”1,2,4,1,8,1,6,4”。我正在尝试 SORT 和 UNIQUE,但我没有任何运气。也不确定如何将月份添加到顶部。我可以让它说,“1 月 1 日,1 月 2 日”,但我试图只把它放在上面一次。
0赞 inasimplerhyme 11/17/2023 #2

莱拉托最初的回答并不完全正确,但如果没有它,我永远不会弄清楚,所以非常感谢你,莱拉托!

这成功了:

=(TEXTJOIN(“,”, TRUE,(UNIQUE(FLATTEN(TRANSPOSE(iferror(ARRAYFORMULA(if(search(“NAME 1”,$B$2:$K$18),TEXT($B$1, “MMM”), “”)),“”)))))))&(TEXTJOIN(“,”, TRUE,(UNIQUE(FLATTEN(TRANSPOSE(iferror(ARRAYFORMULA(if(search(“NAME 1”,$B$2:$K$18),TEXT($B$1:K1, “D”), “”)),“”)))))))

已编辑以更新。我最初的公式我认为有效,但我意识到它按字母顺序对数字进行排序,因此它们出现了“1,10,2,3”等。删除 SORT 并添加 TRANSPOSE 修复了它。