我在这里有一个excel表,其中包含一桶数据但是它们都被压缩到一个单元格中,每个"实体" (它的客户测试数据)。 我看过其他已回答的问题,但没有一个能解决我的问题。 这是我拥有的数据的例子(很多):
{"Url":"https://portal.freemarketfx.com/User/RegisterIndividual","Method":"POST","Form":"{\"__RequestVerificationToken\":\"yBPOicSq9wwIFC4IgI_CDB8RSrJonaRM4ztEo0_1pygdrrIMVP12ivGDF7-bvoIGXIc1vsTSQjB_UKAA3t32AcW9ULbuKdHSFD8TQRPnW9jRj5CBj1Pe9tund8mPUG8Eqjutr-EQ3tMnVsSdrXDkfw2\",\"PostbackData\":\"{}\",\"Title\":\"Mr\",\"FirstName\":\"Sebastien\",\"YourDateofBirth\":\"31/01/1983\",\"Gender\":\"Male\",\"MiddleName\":\"Pascal Emmanuel\",\"IDNumberType\":\"Passport\",\"IDNumber\":\"11CX03708\",\"Surname\":\"Py\",\"AddressList.Index\":\"0\",\"AddressList[0].SinceYear\":\"2015\",\"AddressList[0].SinceMonth\":\"3\",\"AddressList[0].SinceDay\":\"25\",\"AddressList[0].UntilYear\":\"2017\",\"AddressList[0].UntilMonth\":\"3\",\"AddressList[0].UntilDay\":\"25\",\"AddressList[0].HouseNumber\":\"05 06\",\"AddressList[0].HouseName\":\"\",\"AddressList[0].FlatNumber\":\"\",\"AddressList[0].Street\":\"29 Adam Road\",\"AddressList[0].CityTown\":\"Singapore\",\"AddressList[0].Postcode\":\"289901\",\"AddressList[0].County\":\"\",\"AddressList[0].District\":\"\",\"AddressList[0].Country\":\"SG\",\"ChannelList.Index\":\"0,1\",\"ChannelList[0].ChannelType\":\"Email\",\"ChannelList[0].Address\":\"sebastienpy@gmail.com\",\"ChannelList[0].TelephoneConnectionType\":\"Cellular\",\"ChannelList[0].TelephonePurpose\":\"Personal\",\"ChannelList[0].CountryCallingCode\":\"\",\"ChannelList[0].TelephoneNumber\":\"\",\"ChannelList[1].ChannelType\":\"Telephone\",\"ChannelList[1].Address\":\"\",\"ChannelList[1].TelephoneConnectionType\":\"Cellular\",\"ChannelList[1].TelephonePurpose\":\"Personal\",\"ChannelList[1].CountryCallingCode\":\"65\",\"ChannelList[1].TelephoneNumber\":\"87275217\",\"PartyIdentificationType\":\"BicIbanAccountNumber\",\"BankBranchCode\":\"\",\"Bic\":\"HSBCSGSG143\",\"AccountNumber\":\"583474496\",\"AccountSetupDate\":\"\",\"ReasonForExchange\":\"TransferToOwnAccount\",\"ReasonForExchangeOther\":\"\",\"MaxPaymentAmount\":\"0\",\"MaxPaymentAmountCurrency\":\"EUR\",\"CurrenciesRequired\":\"EUR,USD,SGD\",\"FrequencyOfTransfer\":\"Annual\",\"AnnualTransactionsValue\":\"0\",\"AnnualTransactionsValueCurrency\":\"GBP\",\"Destinations\":\"FR\",\"Referrer\":\"\",\"AcceptTerms\":\"true,false\"}","Referrer":"https://portal.freemarketfx.com/User/RegisterIndividual","User Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36","entityId":"1","SendEmailRegistration":"{\"Email\":\"registrations@freemarketfx.com\",\"Data\":{\"FirstName\":\"Sebastien Py\",\"Subject\":\"Registration complete\"}}","ActiveAccount":""}
我的问题是,有没有办法将所有这些分类到每个数据的单元格中?请记住,有数百个其他单元格就像这样,所以我不想手动完成每一个单元格。 这些数据的很大一部分看起来非常像Python字典,我打算编写一段代码来利用它,但我不知道excel中是否有更快的内置函数? P.S因为数据因客户而异,数据长度不一样(以防你想使用= MID,= RIGHT或= LEFT函数)
答案 0 :(得分:0)
看起来","作为数据集之间的主要分隔符,":"作为次要的。即"Url":"https://portal.freemarketfx.com/User/RegisterIndividual","Method":"POST",...
- a","分割不同类型的数据(网址,方法等)和冒号":"从数据类型中拆分值(例如,Url的值为https://portal..。)
那么最好的方法是获取原始实体数据,通过在每个逗号分隔原始数据将其拆分为数据类型,然后从各自的标题中拆分数据值。有几种方法可以在Excel中执行此操作。如果你不介意VBA,请看看这个; Excel "UnCONCATENATE"/explode in function / Convert cell into array
如果您更喜欢使用公式,那么基本想法将在B1
; =LEFT(A1,SEARCH(",",A1))
任何事情发生在","之前。 (A1
保存原始数据)
然后在A2
; =SUBSTITUTE(A1,B1,"",1)
关闭原始数据的左侧,然后向下拖动A列和B列,直到B包含每种数据类型
最后,在C1和D2中有
=LEFT(B1,SEARCH(":",B1))
和=SUBSTITUTE(B1,C1,"",1)
分别将数据类型划分为标题和值
向下拖动,C& D列将拆分所有原始数据。这与VBA方法类似,对于两者而言,您可能需要使用TRIM
和SUBSTITUTE
清除结果以删除垃圾。
希望明白!