如何将数据从一个单元格中的串联字符串获取到 Google 工作表中的另一个 table?

How to get data from concatenated strings in one cell to another table in Google Sheets?

对于我的用例,我有一个 Google 调查连接到主 Google Sheet.

调查有 2 个问题:1. 姓名,2. 1-31(一个月中的几天)的多项选择。 我的调查结果由 Google survey/Forms 在 Google Sheet 中自动生成 table,包含 2 列:'Name' 和 'Which days?'. 'Which Days?' 列包含带有串联字符串列表的单元格(例如 '1, 3, 6, 8, 11')。

主要的 Google Sheet 具有以下结构: 第一列是 'Name',它只是从 Typeform Sheet(这很好用)。 其余列代表一个月中的几天(因此从 1 到 31 最多有 31 列)。 每列下都有复选框。

想法是复选框将根据 Typeform 的结果自动检查(如果更容易的话,我们也可以使用彩色单元格代替复选框)。

问题: 如何自动将数据从串联单元格 'Which Days?'(例如“1、3、6、8、11”)获取到主单元格 Google Sheet(以便列“1” , '3', ..., '11' 是 checked/colored)?

谢谢!

您可以在主 sheet 的单元格 B2 上使用此公式(假设 Sheet1 是您的调查 sheet,Sheet2 是您的主 sheet):

=IF(iferror(match(CELL("address",B2),ARRAYFORMULA(ADDRESS(ROW(B2),1+split(Sheet1!$B2,","))),0),0),TRUE,FALSE)

然后向右向下拖动到 table 的末尾。

样本:

解释:

SPLIT 根据您输入的以逗号分隔的数字创建数组。

ADDRESS 创建一串单元格引用。 ARRAYFORMULA 将其扩展到一个数组。

MATCH return 如果单元格位置的 CELL 引用存在于另一个 table 上,则为有效值,否则将 return 错误。

IFIFERROR 将 return 真或假取决于 MATCH 的值。

使用:

=ARRAYFORMULA(REGEXMATCH(COLUMN(B:K)-1&"", 
 "^"&SUBSTITUTE(SUBSTITUTE(IFNA(VLOOKUP(A10:A12, A1:B3, 2, 0)), " ", ), ",", "$|^")&"$"))