Google 工作表 return 值基于多个条件

Google Sheets return value based on multiple conditions

我有一个 google sheet 看起来像这样 Empty sheet

在同一个 sheet 中,我有以下源数据: Source data

名称列与 sheet 中水平排列的名称完全相同 状态栏是一个文本

我的目标是根据每个人在特定日期的状态,在每个姓名下的单元格中和相应日期列旁边添加一个“X”或“O”。

如果状态 =“现场”则输入“X”,如果状态为“非现场”则输入“O”

输出应如下所示: Goal

所以 3 件事应该匹配:姓名、状态和日期

我尝试将 IF() 函数与 AND() 一起使用,但它没有给我所需的输出。

我尝试了以下方法:

=IF(AND(T15="Person 1", U15="On site", V15=A2), "X", "O")

V15 是包含源日期的单元格,A2 是包含目标日期的单元格

为什么这不起作用?我究竟做错了什么?非常感谢任何帮助!

在 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"))))