将 yes/no 个答案 header 个替换值的范围加入到 google 个工作表中的单个单元格中
Join range of yes/no answer header replacements values into single cell in google sheets
将 this sheet 行的 运行ge 中的“是”或“否”值(即 A2:C4)替换为列 header 中的值 & 当值(是,no) 存在,然后通过修改下面进一步解释的公式,在所有带有“是”或“否”文本的值之前插入来自 header 文本的附加文本。
到目前为止已经完成了大量工作,但 运行 遇到了一些困难,感谢任何帮助。
所需的输出如下所示:
目标 1:结合是,没有替换公式
- 当前公式需要单独的 yes/no 列,但我想将显示替换为是的答案的答案合并到替换为否的答案上方,并用换行符分隔。
目标 2:在 yes/no 文本存在时,有条件地在字符串开头插入额外的 header 文本
我添加了基于 header 文本和分隔符的文本插入。如果提供了“是”替换答案,它会在 header 中从定界符左侧插入文本(如果提供“否”替换则相反)。例如,提供了一个 header 字符串,例如“喜欢 |不喜欢”,然后是 Regex
REGEXEXTRACT(J1,"^(.*)|"
将提取管道左侧的文本作为“是”的答案,将另一个正则表达式提取到右侧的“否”
- 当我试图创建一个“条件”时,我 运行 遇到了一个问题,如果存在 yes/no 替换,这只会出现。我这样做是通过尝试 RegExReplace 这个文本,当没有使用正则表达式的附加文本时,它应该有效,但没有,如下所示:
如何修改这个Google Spreadsheet to achieve my objective. This is based on previously answered
中的等式
先验方程
将给定行(即 A2:D4)中 运行ge 中的“是”答案替换为按所需顺序在 E4 中用逗号分隔的 header 值。
初步接近
使用单独的等式
替换相同 运行ge 中的“否”答案
使用第三个“辅助”单元格在“是”值下方添加“否”值
指定顺序
header 以所需顺序标有数字。对于 运行ge 中的任何问题,原始公式将寻找“是”并将其替换为 header 值,并输出为索引
第二个公式将按字母顺序对值进行拆分和排序,然后对数字进行 REGEXREPLACE。
非常感谢任何将这三个公式结合起来以实现上述 objective 的帮助!
INDEX(REGEXEXTRACT(G1,"^(.*)\|")®EXREPLACE(TRIM(FLATTEN(QUERY(TRANSPOSE(IF(TRANSPOSE(SORT(TRANSPOSE(A2:C3), FLATTEN(A1:C1), 1))="yes", REGEXREPLACE(TRANSPOSE(SORT(FLATTEN(A1:C1))), "(^\d+_)", )&",", )),,9^9))), ",$", ))
和
INDEX( REGEXEXTRACT(G1,"\|(.*)")®EXREPLACE(TRIM(FLATTEN(QUERY(TRANSPOSE( IF(TRANSPOSE(SORT(TRANSPOSE(A2:C3), FLATTEN(A1:C1), 1))="no", REGEXREPLACE(TRANSPOSE(SORT(FLATTEN(A1:C1))), "(^\d+_)", )&",", )),,9^9))), ",$", ))
备选方案 #2
和
当后面没有附加文本时替换重新提取的值
分享的googlesheet是here
在 G2 中使用:
=ARRAYFORMULA(IF(REGEXMATCH(FLATTEN(QUERY(TRANSPOSE(A2:C4),,9^9)), "yes"),
REGEXEXTRACT(G1, "(.*)\|"), )®EXREPLACE(TRIM(FLATTEN(QUERY(TRANSPOSE(
IF(TRANSPOSE(SORT(TRANSPOSE(A2:C4), FLATTEN(A1:C1), 1))="yes",
REGEXREPLACE(TRANSPOSE(SORT(FLATTEN(A1:C1&","))), "(^\d+_)", ), )),,9^9))), ",$", ".")&
IF(REGEXMATCH(FLATTEN(QUERY(TRANSPOSE(A2:C4),,9^9)), "no"),
IF(REGEXMATCH(FLATTEN(QUERY(TRANSPOSE(A2:C4),,9^9)), "yes"), CHAR(10), )&
REGEXEXTRACT(G1, "\|(.*)"), )®EXREPLACE(TRIM(FLATTEN(QUERY(TRANSPOSE(
IF(TRANSPOSE(SORT(TRANSPOSE(A2:C4), FLATTEN(A1:C1), 1))="no",
REGEXREPLACE(TRANSPOSE(SORT(FLATTEN(A1:C1&","))), "(^\d+_)", ), )),,9^9))), ",$", "."))
在 H2 中使用:
=ARRAYFORMULA(IF(REGEXMATCH(FLATTEN(QUERY(TRANSPOSE(E2:F4),,9^9)), "yes"),
REGEXEXTRACT(H1, "(.*)\|"), )®EXREPLACE(TRIM(FLATTEN(QUERY(TRANSPOSE(
IF(TRANSPOSE(SORT(TRANSPOSE(E2:F4), FLATTEN(E1:F1), 1))="yes",
REGEXREPLACE(TRANSPOSE(SORT(FLATTEN(E1:F1&","))), "(^\d+_)", ), )),,9^9))), ",$", ".")&
IF(REGEXMATCH(FLATTEN(QUERY(TRANSPOSE(E2:F4),,9^9)), "no"),
IF(REGEXMATCH(FLATTEN(QUERY(TRANSPOSE(E2:F4),,9^9)), "yes"), CHAR(10), )&
REGEXEXTRACT(H1, "\|(.*)"), )®EXREPLACE(TRIM(FLATTEN(QUERY(TRANSPOSE(
IF(TRANSPOSE(SORT(TRANSPOSE(E2:F4), FLATTEN(E1:F1), 1))="no",
REGEXREPLACE(TRANSPOSE(SORT(FLATTEN(E1:F1&","))), "(^\d+_)", ), )),,9^9))), ",$", "."))
将 this sheet 行的 运行ge 中的“是”或“否”值(即 A2:C4)替换为列 header 中的值 & 当值(是,no) 存在,然后通过修改下面进一步解释的公式,在所有带有“是”或“否”文本的值之前插入来自 header 文本的附加文本。
到目前为止已经完成了大量工作,但 运行 遇到了一些困难,感谢任何帮助。
所需的输出如下所示:
目标 1:结合是,没有替换公式
- 当前公式需要单独的 yes/no 列,但我想将显示替换为是的答案的答案合并到替换为否的答案上方,并用换行符分隔。
目标 2:在 yes/no 文本存在时,有条件地在字符串开头插入额外的 header 文本
我添加了基于 header 文本和分隔符的文本插入。如果提供了“是”替换答案,它会在 header 中从定界符左侧插入文本(如果提供“否”替换则相反)。例如,提供了一个 header 字符串,例如“喜欢 |不喜欢”,然后是 Regex
REGEXEXTRACT(J1,"^(.*)|"
将提取管道左侧的文本作为“是”的答案,将另一个正则表达式提取到右侧的“否”
- 当我试图创建一个“条件”时,我 运行 遇到了一个问题,如果存在 yes/no 替换,这只会出现。我这样做是通过尝试 RegExReplace 这个文本,当没有使用正则表达式的附加文本时,它应该有效,但没有,如下所示:
如何修改这个Google Spreadsheet to achieve my objective. This is based on previously answered
先验方程 将给定行(即 A2:D4)中 运行ge 中的“是”答案替换为按所需顺序在 E4 中用逗号分隔的 header 值。
初步接近 使用单独的等式
替换相同 运行ge 中的“否”答案使用第三个“辅助”单元格在“是”值下方添加“否”值
指定顺序 header 以所需顺序标有数字。对于 运行ge 中的任何问题,原始公式将寻找“是”并将其替换为 header 值,并输出为索引
第二个公式将按字母顺序对值进行拆分和排序,然后对数字进行 REGEXREPLACE。
非常感谢任何将这三个公式结合起来以实现上述 objective 的帮助!
INDEX(REGEXEXTRACT(G1,"^(.*)\|")®EXREPLACE(TRIM(FLATTEN(QUERY(TRANSPOSE(IF(TRANSPOSE(SORT(TRANSPOSE(A2:C3), FLATTEN(A1:C1), 1))="yes", REGEXREPLACE(TRANSPOSE(SORT(FLATTEN(A1:C1))), "(^\d+_)", )&",", )),,9^9))), ",$", ))
和
INDEX( REGEXEXTRACT(G1,"\|(.*)")®EXREPLACE(TRIM(FLATTEN(QUERY(TRANSPOSE( IF(TRANSPOSE(SORT(TRANSPOSE(A2:C3), FLATTEN(A1:C1), 1))="no", REGEXREPLACE(TRANSPOSE(SORT(FLATTEN(A1:C1))), "(^\d+_)", )&",", )),,9^9))), ",$", ))
备选方案 #2
和
当后面没有附加文本时替换重新提取的值
分享的googlesheet是here
在 G2 中使用:
=ARRAYFORMULA(IF(REGEXMATCH(FLATTEN(QUERY(TRANSPOSE(A2:C4),,9^9)), "yes"),
REGEXEXTRACT(G1, "(.*)\|"), )®EXREPLACE(TRIM(FLATTEN(QUERY(TRANSPOSE(
IF(TRANSPOSE(SORT(TRANSPOSE(A2:C4), FLATTEN(A1:C1), 1))="yes",
REGEXREPLACE(TRANSPOSE(SORT(FLATTEN(A1:C1&","))), "(^\d+_)", ), )),,9^9))), ",$", ".")&
IF(REGEXMATCH(FLATTEN(QUERY(TRANSPOSE(A2:C4),,9^9)), "no"),
IF(REGEXMATCH(FLATTEN(QUERY(TRANSPOSE(A2:C4),,9^9)), "yes"), CHAR(10), )&
REGEXEXTRACT(G1, "\|(.*)"), )®EXREPLACE(TRIM(FLATTEN(QUERY(TRANSPOSE(
IF(TRANSPOSE(SORT(TRANSPOSE(A2:C4), FLATTEN(A1:C1), 1))="no",
REGEXREPLACE(TRANSPOSE(SORT(FLATTEN(A1:C1&","))), "(^\d+_)", ), )),,9^9))), ",$", "."))
在 H2 中使用:
=ARRAYFORMULA(IF(REGEXMATCH(FLATTEN(QUERY(TRANSPOSE(E2:F4),,9^9)), "yes"),
REGEXEXTRACT(H1, "(.*)\|"), )®EXREPLACE(TRIM(FLATTEN(QUERY(TRANSPOSE(
IF(TRANSPOSE(SORT(TRANSPOSE(E2:F4), FLATTEN(E1:F1), 1))="yes",
REGEXREPLACE(TRANSPOSE(SORT(FLATTEN(E1:F1&","))), "(^\d+_)", ), )),,9^9))), ",$", ".")&
IF(REGEXMATCH(FLATTEN(QUERY(TRANSPOSE(E2:F4),,9^9)), "no"),
IF(REGEXMATCH(FLATTEN(QUERY(TRANSPOSE(E2:F4),,9^9)), "yes"), CHAR(10), )&
REGEXEXTRACT(H1, "\|(.*)"), )®EXREPLACE(TRIM(FLATTEN(QUERY(TRANSPOSE(
IF(TRANSPOSE(SORT(TRANSPOSE(E2:F4), FLATTEN(E1:F1), 1))="no",
REGEXREPLACE(TRANSPOSE(SORT(FLATTEN(E1:F1&","))), "(^\d+_)", ), )),,9^9))), ",$", "."))