【问题标题】:import query in google sheets not importing certain numbers谷歌表中的导入查询不导入某些数字
【发布时间】:2020-07-15 16:33:16
【问题描述】:

我正在处理一些数据,我必须将原始数据从预付表导入到主表,但我看到某些数字单元格没有像名为 Master 的表中的单元格 B18 那样导入。如果我将原始数据单元格转换为数字,它可以工作,但它将 11892667013478301 转换为 11892667013478300 导致不匹配。这是对数量的大小限制吗

工作表如下 https://docs.google.com/spreadsheets/d/12y5h6NYArpEctQ2FD-AXJrqZcQydnEd5BjrOALMJEGI/edit?usp=sharing

【问题讨论】:

    标签: google-sheets


    【解决方案1】:

    来自QUERY docs:

    在单个列中混合数据类型的情况下,多数数据类型确定列的数据类型以用于查询目的。少数数据类型被视为空值

    由于列中的大多数值都以两个 0s 结尾,因此它们未达到 15 位的位数限制,因此被视为数字。达到 15 位的值被视为字符串值,由于这些值在列中属于少数,因此它们被视为空值。

    为避免这种情况,您可以通过TO_TEXT 强制将列中的所有值视为字符串,并对其应用QUERY

    =QUERY(ARRAYFORMULA(TO_TEXT(Prepaid!E:F)),"select * where Col1 is not null")
    

    【讨论】:

      【解决方案2】:

      我将删除我的另一个答案,因为是的,问题似乎是您达到了 Google 表格中数字的最大有效位数 15。您可以通过在 Prepaid!F 中的任何(数字)单元格中添加任何小数字来证明这一点 - 该数字不会增加,因为它无法显示更多有效数字。

      您的大多数值是 15 位有效数字加上末尾的两个零。但是 F18 和 F28 以 01 结尾,而不是 00,所以它们被视为字符串。强制他们输入一个数字会“丢弃”最后两位有效数字,使它们成为 00。

      也许对您来说最简单的答案是强制所有列 E 和 F 为文本字符串,而不是数值,然后它们都可以被平等地处理,例如对它们运行查询。

      让我知道这是否有帮助。

      【讨论】:

      • 我会尝试,但第一个问题是,如果 master 中的查询可以作为字符串存在于预付表中,为什么它无法将数据提取到工作表中
      • 正如 lamblichus 下面的回答,QUERY 将仅检索与该列中大多数数据相同的 TYPE 值。因此,如果大多数值是数字,而少数值是文本,则即使这些行符合查询条件,它也不会检索任何文本值,而是为这些行返回空白值。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      • 2019-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多