Google表格:拆分数据并删除每个新单元格的第一部分

时间:2016-08-29 10:04:23

标签: google-sheets

我正在将SAAS中的数据提供给Google表格,并且需要对其进行格式化以便能够使用它。

大多数列都没问题,但是一列中有多个参数。每个单元格看起来像(数据匿名):

affiliate_fees: None
affiliate_percent: 0.X
amount_refunded: 0
author_fees: 0
author_id: xxxx
author_percent: 0.5
coupon_id: xxxx
created_at: 2016-xxxxx
currency: USD
custom_gateway?: None
earnings_usd: None
meta: {u'url': None, u'class': u'transaction', u'image_url': None, u'description': None, u'name': u'xxxx'}
net_charge: xxx
net_charge_usd: xxx
paypal_payment_id: PAY-XXXXXXX
purchased_at: 2016-xxxx
refundable: True
sale_id: xxxx
status: None
stripe_charge_token: None
stripe_invoice_id: None
total_fedora_fee: None
total_processor_fee: None
user_id: xxxx
vat_fees: None

我已经了解了如何SPLIT将数据分成不同的列 - 我是通过=SPLIT(CC2,CHAR(10))

进行的

现在我想做的事情,理想情况是在同一个操作中,是在第一次冒号:

之前移除部件

所以目标是:最终只将值(:之后的部分)扩展到不同的列。我可以手动输入列名。例如:

--------------------------------------------------
| affiliate_fees       | affiliate_percent       |
--------------------------------------------------
| None                 | 0.X                     |
--------------------------------------------------
| ...                  | ...                     |
--------------------------------------------------

任何提示?谢谢你的时间!

注意:我真的不需要meta:行,可以将其丢弃。我把它留在那里是因为它可能(或可能不会)使事情变得更加棘手

2 个答案:

答案 0 :(得分:1)

备选方案1

几个月前推出的Google表格"将文字拆分为专栏"作为菜单命令。有关详细信息,请参阅Separate cell text into columns

分开文字后,您可以使用copy&粘贴>转置

备选方案2

单个公式替代方法是使用

=ArrayFormula(transpose(REGEXEXTRACT(A1:A25,{"(.*[\w\?])+\:","\: (.*)+"})))

这将返回一个25 x 2的数组,您不必手动添加列标题。

备选方案3

如果您仍想使用SPLIT,可以使用": "作为分隔符,使用FALSE作为第三个参数来威胁它们作为单个分隔符,但这也会分割{{1}分成几列。

假设您的数据从A1开始,那么使用的公式是:

meta: ...

要包含所有包含数据的行,您必须填写此公式。然后复制&粘贴>转置。

答案 1 :(得分:0)

this spreadsheet中,我在单元格E2中使用了这个公式

=ArrayFormula({regexreplace(split(A3, char(10)), "\:(.+)",""); regexreplace(split(A3, char(10)), "(.+)\: ","")})

这将创建一个包含标题的行和第2行中的值。如果您不想要标题,只需使用

=ArrayFormula(regexreplace(split(A3, char(10)), "(.+)\: ",""))

看看这对你有用吗?