Search code examples
jsonregexgoogle-sheetsarray-formulasre2

json parse. Extract 2 values from multiple records and merge into one cell, with array formula


I'm trying to use a formula to extract the values from each "hash" in table cells A1:A and concatenate them in cells B1:B separated by commas

https://docs.google.com/spreadsheets/d/1i2qLX-BfZ6ZpWNzpgAVHsNSTG8HjwbhSFVfqtp8bMhc/edit?usp=sharing

JSON

A1

{
"2Qk1xsOqhlxUe5d3fiJVcXgBLaBODegmo":{
"hash":"2Qk1xsOqhlxUe5d3fiJVcXgBLaBODegmo",
"name":"logo2.png",
"description":"",
"type":"image/png",
"path":"/logo2.png",
"size":"13 KB"
},
"1W2HdCGmeMLz1u0kzvxdUhGyEwIUlMD-s":{
"hash":"1W2HdCGmeMLz1u0kzvxdUhGyEwIUlMD-s",
"name":"logo.png",
"description":"",
"type":"image/png",
"path":"/logo.png",
"size":"29 KB"
}
}

A2

{
"5Qk1xsOqhlxUe5d3fiJVcXgBLaBODegmo":{
"hash":"5Qk1xsOqhlxUe5d3fiJVcXgBLaBODegmo",
"name":"logo2.png",
"description":"",
"type":"image/png",
"path":"/logo3.png",
"size":"13 KB"
},
"4W2HdCGmeMLz1u0kzvxdUhGyEwIUlMD-s":{
"hash":"4W2HdCGmeMLz1u0kzvxdUhGyEwIUlMD-s",
"name":"logo.png",
"description":"",
"type":"image/png",
"path":"/logo4.png",
"size":"29 KB"
}
}

Extracted value (Hash)

B1

2Qk1xsOqhlxUe5d3fiJVcXgBLaBODegmo,1W2HdCGmeMLz1u0kzvxdUhGyEwIUlMD 

B2

5Qk1xsOqhlxUe5d3fiJVcXgBLaBODegmo,4W2HdCGmeMLz1u0kzvxdUhGyEwIUlMD

Solution

  • Try:

    =INDEX(REGEXREPLACE(TRIM(FLATTEN(QUERY(TRANSPOSE(IFNA(REGEXREPLACE(SPLIT(REGEXEXTRACT(
     REGEXREPLACE(A2:A, "[""\{\}\n ]|-s", ), "hash:.*"), "hash:", ), 
     "name.*", ))),,9^9))), " |,$", ))
    

    enter image description here