Google sheets Google sheets查询多行+;使用查找表将cols转换为一个单元格
无法确定如何将具有多个行和列的查询结果拉入单个单元格,并从我的查找表中查找其详细信息。非常感谢您的帮助 试试这个 =阵列公式( 质疑({ 查询({A4:A16,TEXTJOIN(“,”,TRUE,B4:C16)},“选择Col1,Col2,Col3,其中Col1匹配'core1 | core2 | core3'标签Col1'核心ID',Col2'完整结果') },“选择Col2,其中Col1=Col1”) )Google sheets Google sheets查询多行+;使用查找表将cols转换为一个单元格,google-sheets,google-sheets-formula,Google Sheets,Google Sheets Formula,无法确定如何将具有多个行和列的查询结果拉入单个单元格,并从我的查找表中查找其详细信息。非常感谢您的帮助 试试这个 =阵列公式( 质疑({ 查询({A4:A16,TEXTJOIN(“,”,TRUE,B4:C16)},“选择Col1,Col2,Col3,其中Col1匹配'core1 | core2 | core3'标签Col1'核心ID',Col2'完整结果') },“选择Col2,其中Col1=Col1”) ) 试图将查询与数组公式混合在一起总是让人头疼。他们相处不好 我得出了一个很好的公式,但关
试图将
查询
与数组公式
混合在一起总是让人头疼。他们相处不好
我得出了一个很好的公式,但关键是它依赖于您首先按核心项对数据进行排序。您可以通过以下方式轻松实现这一点:
=SORT(A4:C16)
对于这个例子,我把这个公式放在单元格N4上。那么得出的公式是:
=ArrayFormula(
{
"Core ID", "Full Result";
UNIQUE(FILTER(N4:N,N4:N<>"")),
SUBSTITUTE(
TRANSPOSE(
SPLIT(
REGEXREPLACE(
TEXTJOIN(
",",
,
UNIQUE(
TRANSPOSE(
IF(
TRANSPOSE(FILTER(N4:N,N4:N<>""))=FILTER(N4:N,N4:N<>""),
FILTER(O4:O,O4:O<>"")&
" ("&
VLOOKUP(FILTER(O3:O,O3:O<>""),A23:B53,2,)&
") - "&
FILTER(P4:P,P4:P<>"")&
" ("&
VLOOKUP(FILTER(P4:P,P4:P<>""),A23:B53,2,)&
")",
";"
)
)
)
),
",(;,)+",
";"
),";"
)
),
",",
CHAR(10)
)
})
=数组公式(
{
“核心ID”、“完整结果”;
唯一(筛选器(N4:N,N4:N“”),
替代品(
转置(
分裂(
REGEXREPLACE(
文本连接(
",",
,
独特的(
转置(
如果(
转置(FILTER(N4:N,N4:N“”)=FILTER(N4:N,N4:N“”),
过滤器(O4:O,O4:O“”)&
" ("&
VLOOKUP(过滤器(O3:O,O3:O“”),A23:B53,2,)&
") - "&
过滤器(P4:P,P4:P“”)&
" ("&
VLOOKUP(过滤器(P4:P,P4:P“”),A23:B53,2,)&
")",
";"
)
)
)
),
",(;,)+",
";"
),";"
)
),
",",
字符(10)
)
})
它使用了我为类似这样的东西所采用的组连接方法,
UNIQUE
、TRANSPOSE
和IF
。通过替换N4:N
的所有实例,不必使用预先计算的排序
就可以解决此问题,但这样做可以节省计算时间。如果您需要它,您也可以隐藏该列或将其存放在另一张纸中。如果您可以拆分公式,那么这将是一种可接受的方法
首先构建查询条件
=ArrayFormula(
QUERY({QUERY({A4:A16,ArrayFormula(B4:B16&" ("&VLOOKUP(B4:B16,A23:B53,2,false)&") -
("&VLOOKUP(C4:C16,A23:B53,2,false)&")")}, "SELECT Col1, Col2 WHERE
Col1 MATCHES 'Core 1|Core 2|Core 3' LABEL Col1 'Core ID', Col2 'ALL Result'")},
"SELECT Col1, Col2 WHERE Col1 = Col1"))
然后在另一列中获取唯一值,最后,连接过滤后的值
=UNIQUE(E4:E17)
=Join(Char(10),FILTER(F4:F12,E4:E12 = H4))
这样做的缺点是,您需要有多个列来实现所需的结果,但这很容易做到。祝你好运