Google 表格根据多个条件返回值
Posted
技术标签:
【中文标题】Google 表格根据多个条件返回值【英文标题】:Google Sheets return value based on multiple conditions 【发布时间】:2022-01-15 12:54:23 【问题描述】:我有一个看起来像这样的谷歌表格 Empty sheet
在同一张表中,我有以下源数据: Source data
名称列与工作表中水平排列的名称完全相同 状态栏是文本
我的目标是根据每个人在特定日期的状态,在每个名称下方的单元格中以及在相应日期列旁边添加一个“X”或“O”。
如果状态=“在现场”则输入“X”,如果状态为“非现场”则输入“O”
输出应如下所示: Goal
所以 3 件事应该匹配:姓名、状态和日期
我尝试使用带有 AND() 的 IF() 函数,但它没有给我想要的输出。
我尝试了以下方法:
=IF(AND(T15="Person 1", U15="On site", V15=A2), "X", "O")
V15
是包含源日期的单元格,A2
是包含目标日期的单元格
为什么这不起作用?我究竟做错了什么?非常感谢任何帮助!
【问题讨论】:
分享您的工作表副本 @player0 我应该导出为 excel 文件还是只链接到 google 表格? @player0 docs.google.com/spreadsheets/d/… @player0 在右侧的同一张纸上。您可能需要滚动一下 @TheMaster 谢谢你的提醒。从现在开始我会考虑的。 【参考方案1】:在 C2 中尝试:
=INDEX(IFNA(SUBSTITUTE(SUBSTITUTE(VLOOKUP(A2:A,
QUERY(T15:V22; SPLIT(FLATTEN(C1:M1)&"×!×1", "×"),
"select Col3,max(Col2) where Col2 is not null group by Col3 pivot Col1"),
MATCH(C1:M1, TRANSPOSE(SORT(FLATTEN(C1:M1))), 0)+1, 0),
"On site", "X"), "Off site", "O")))
更新
优化公式:
=INDEX(IFNA(IF(A2:A="",,SUBSTITUTE(SUBSTITUTE(VLOOKUP(TO_TEXT(A2:A),QUERY(QUERY(TEXT(
IMPORTRANGE("1IANXcVXKRMj591vs_jLkHAQp-ZCoZFpbf7xOSm2srJA", "Form Responses 1!A2:C"),
"m/d/yyyy", "@", "@"), "where Col2 <> '0'");
SPLIT("!×"&FLATTEN(C1:M1)&"×!", "×"),
"select Col1,max(Col3) where Col2 is not null group by Col1 pivot Col2"),
MATCH(C1:M1, TRANSPOSE(SORT(FLATTEN(C1:M1))), )+1, ),
"Working alone", "X"), "Not working alone/Not working", "O"))))
【讨论】:
哇,谢谢!你有没有机会告诉我这些嵌套函数背后的逻辑?我将查看每个功能以了解更多信息,但是您如何在这里一起使用它们来实现这一点?谢谢!!感谢您的回复! @badi 当然,这个想法很简单.. 我们采用范围 T15:V22 并使用所有可能的名称 C1:M1 对其进行扩展,因为 T15:T22 不包含或可能不包含我们需要的所有名称用于旋转。所以我们创建了一个数组 并将其传递给 QUERY,然后将所有名称作为第一列放置日期,这样我们就可以根据日期进行 VLOOKUP。在 VLOOKUP 中,我们选择范围 A2:A 并从我们的 QUERY 中返回完全匹配。但由于名称在 T15:T22 和 C1:M1 中的顺序不同或可能不同,我们运行简单 MATCH 以返回数字序列,其中数字 = 列号。 但是我们的第一列 QUERY 是日期,我们希望在日期之后返回内容,所以我们做了一个小的更正 +1,最后我们只是用自定义字符串替换内容 谢谢!在 QUERY 函数的数据参数中,SPLIT 函数的用途是什么?在 & 符号之后,“”里面的字符是什么? @badi 如前所述...我们从 C1:M1 中获取名称并附加唯一符号 ×(如果您希望使用任何符号♥♦♣♠♂♀♫♪☼►,您可以更改它)到然后我们附加每个名称! (您可以将其更改为您希望的任何文本)再次唯一的符号 × 和 1(同样是任何小于 40000 的数字 - 代表日期值)。接下来,我们将其展平为一列并将其拆分为 3 列(以匹配我们之前的 3 列范围 T15:V22),在这些唯一符号上对其进行裁剪以上是关于Google 表格根据多个条件返回值的主要内容,如果未能解决你的问题,请参考以下文章
Discord Bot 读取 Google 表格并在表格中返回值。我想在没有表格格式的消息中返回值 ar CSV