IMPORTXML 更改单元格中的导入格式

IMPORTXML Change the imported format in a cell

我使用 IMPORTXML 公式从网站导入值。

该公式导入一列中包含 4 个单元格的列表。

第三个单元格的值为带点的数字,因此被识别为文本。

我想用逗号更改点,但是当我使用 SUBSTITUTE 函数时,第一个单元格的值被转换,其他三个单元格为空。

基本公式如下:

=IMPORTXML("https://opensea.io/collection/primeapeplanetpap?tab=activity";"//div[contains(@tabindex,'-1')]")

这是带有 SUBSTITUTE 函数的公式:

=SUBSTITUTE(SUBSTITUTE(IMPORTXML("https://opensea.io/collection/primeapeplanetpap?tab=activity";"//div[contains(@tabindex,'-1')]"); "K";"");".";",")*1

I'm sharing a sheet

如果可能的话,我希望只更改第三个单元格的格式,而其他单元格保持原样。

如果有应用脚本的解决方案,我也很感兴趣。

提前感谢您的回答

我不知道如何用公式来完成。

这是在范围内的所有单元格中进行更改的简单脚本:

function myFunction() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange('C2:C5'); // <-------- set your range here
  var values = range.getDisplayValues();

  for (let row in values) for (let cell in values[row]) {
    values[row][cell] = values[row][cell].replace('K','').replace('.',',')
  }
  
  range.setValues(values);
}

您可以将自定义菜单 'Script > Clean numbers' 添加到 运行 菜单中的功能:

function onOpen() {
  SpreadsheetApp.getUi().createMenu('Scripts')
  .addItem('Clean numbers', 'myFunction')
  .addToUi();
}


我刚打开你的点差sheet,它显示了正确的数字,没有替换:

可能实际的答案不是替换值,而是更改 Spreadsheet 的区域设置以适应 xml 来源的设置?

您还可以尝试将所有数字转换为文本,然后再从 sheet 中获取它们。在 var range = ...:

之后一行就可以完成
range.setNumberFormat('@');

也许在 range.setValues(values) 之后的最后:

range.setNumberFormat('#,##0.0000');

如果你毕竟需要数字。