我正在尝试构建一个股票财务分析电子表格,例如 sheet。我有一个财务选项卡,我可以在其中通过 csv 导入资产负债表、损益表和现金流量表。在另一个选项卡中,我编写了查询,这些查询将根据我放入单元格的任何代码填充财务报表
params.value
在示例表中,我在放置这些查询函数的位置放置了一个蓝色边框。我遇到的问题是我一直收到所有 3 个解析错误。
答案 0 :(得分:1)
试试这个:
=QUERY({Financials!B4:M}, "SELECT * WHERE Col1 = '"&B2&"'")
=QUERY({Financials!Q4:AB}, "SELECT * WHERE Col1 = '"&B2&"'")
=QUERY({Financials!AF4:AR}, "SELECT * WHERE Col1 = '"&B2&"'")
输出:
参考:
答案 1 :(得分:1)
根据我的经验,我经常使用单引号和双引号将字符串连接起来。我建议你把公式分解一下。因此,在另一个单元格中,使 SELECT 子句字符串起作用,然后添加回 QUERY() 函数。
="SELECT * WHERE Col1 = '"&B2&"'"
这有时被称为洋葱方法。如果您在字符串公式上遇到错误,您可以进一步分解它,直到您确定问题出在哪里。在这种情况下,它是您引用单元格的地方。
另一种方法是从硬编码公式开始,然后替换单元格引用:
=QUERY(Financials!B4:M, "SELECT * WHERE B = """&B2&""", ")
变成:
=QUERY(Financials!B4:M, "SELECT * WHERE B = 'AAPL', 1)
然后使用连接运算符 (&) 和单引号将 'AAPL' 替换为单元格引用(因为整个字符串都使用双引号。
=QUERY(Financials!B4:M, "SELECT * WHERE B = '"&B2&"'", 1)
还有一个 CONCATENATE() 函数,我有时也会使用它
=QUERY(Financials!B4:M, CONCATENATE("SELECT * WHERE B = '",B2,"'"), 1)
有些人认为没有所有与号运算符更容易理解