分割数据和复制其他单元格在谷歌工作表或excel

axzmvihb  于 2023-03-20  发布在  其他
关注(0)|答案(2)|浏览(88)

日安,请我需要帮助,我有数据分散在谷歌表不同的单元格,单元格1包含一个名称,单元格2包含许多行的数据,单元格3包含一个名称,我需要将单元格2中的数据分为不同的垂直单元格与复制单元格1和3中的数据,如所附图片[

]

我试过转置但失败了

5hcedyr0

5hcedyr01#

对于Google Apps脚本,请尝试:

const Sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(`YourSheetName`)

function dataHandler() {

  const dataRange = Sheet.getDataRange()
                         .offset(1, 0)
  
  const data = dataRange.getValues()

  const newValues = data.flatMap(([ name, location, addresses, phone]) => {
    
    const addressList = addresses.split(`\n`)

    return location.split(`\n`)
                   .map((item, index) => {
      return [
        name,
        (addressList[index]) ? addressList[index] : ``,
        item,
        phone
      ]
    })

  })

  dataRange.clearContent()

  Sheet.getRange(2, 1, newValues.length, newValues[0].length)
       .setValues(newValues)

}

会评论这一点,但目前电话张贴。

8yparm6h

8yparm6h2#

如果您拆分,则转置适用于我:=TRANSPOSE(SPLIT(B2, CHAR(10)))
假设在第二个单元格中只有四行,您可以直接引用这些结果周围的名称单元格;那就最简单了。
编辑:由于行数未知,您可以执行以下操作来复制名称:=TRANSPOSE(SPLIT(REPT(";"&A2,COUNTIF(SPLIT(B2, CHAR(10)),"<>")), ";", TRUE, TRUE))
这个snippit所做的是计算B2中的行数,用一些分隔符重复A2的行数,然后拆分(删除空行)并像我们对B2所做的那样转置它。

相关问题