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"))))
我有一个 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"))))