我在 postgresql 中编写了一个查询来获取我需要的数据,并希望在 excel 中进一步分析它。但每次我传递数字变量时,它要么变成短日期格式,要么像 27.1630333333333 这样的数字变成 271.630.333.333.333。我可以将其四舍五入(这意味着信息丢失),使其变成 27,但有时我有像 1085.01 这样的值,这也会变成 108.501,这是不可取的。我如何保留查询中的原始格式?
这是我查询的数据输出的摘录: 查询输出
将查询输出复制到剪贴板后,这是我可以选择的粘贴选项: 粘贴选项
当我将其复制到剪贴板并粘贴时,我得到如下输出: 输出粘贴到 Excel 中
答案1
很难说这里的问题是什么,但是既然您说数据库和您的系统之间或 Excel 和您的系统之间可能存在区域设置不匹配,那么它可能与此有关。
您的查询结果看起来好像句号是小数分隔符,在这种情况下逗号将是千位分隔符。但是,当您将数字粘贴到 Excel 中时(您说是德语),句号被视为千位分隔符,并且数字被粘贴为非常大的整数,用句号分成三位数的组。
因此,您可以:
a)将查询结果转换为文本,然后用逗号替换句点,如下所示:
replace(query_column::text,".",",")
然后复制输出并粘贴。
或者
b) 更改 Excel 中的分隔符设置。转到文件>选项>高级,取消勾选“使用系统分隔符”,然后将 Excel 更改为使用句点作为小数分隔符,使用逗号作为千位分隔符。
答案2
我假设您正在使用 Office 365,因为您没有指定 Excel 的版本。
如果您想防止 Excel 尝试自动对数据进行分类(并可能损坏数据),那么在粘贴任何数据之前,您需要更改字段的数字格式。Ctrl+a,将格式(默认为“常规”)更改为“文本”
现在,每个字段的格式都不会“想要”更改数字的格式。但是,根据您粘贴的数据,Excel 可能会将您的数据解释为包含其自己的格式。这可能会导致单元格格式更改为“日期”、“货币”等,并且仍然会破坏您的数据。
为了防止这种情况并保持格式为“文本”,请使用粘贴菜单下的“选择性粘贴”选项。您要查找的粘贴选项称为“粘贴文本”或“仅保留文本”,具体取决于您查找的菜单。
做这两件事应该可以防止 Excel 弄乱您的数据。