次のような内容のセルの長いGoogleシート列があります。
#text: Jacob Zuma
@domain: https://www.theguardian.com/world/zuma
#text: World news
@domain: https://www.theguardian.com/world/world
#text: ANC (African National Congress)
@domain: https://www.theguardian.com/world/anc-african-national-congress
#text: South Africa
@domain: https://www.theguardian.com/world/southafrica
#text: Africa
@domain: https://www.theguardian.com/world/africa
このように見える必要があります:
Jacob Zuma, World news, ANC (African National Congress), South Africa, Africa
基本的に、すべてのヘッダー(#text + @ domain)とURLを取り除き、サブジェクトのみをすべてコンマで区切って並べる方法を探しています。
それを行う方法を理解する上で助けていただければ幸いです。
解決策は次のとおりです。
まず、データはすべてシートの列aにあり、空白行で区切られたテキストの各2行は1つのセルを表していると想定しています。また、列aのパターンが5セルの直後に繰り返されると仮定しています。
次の式を列bに貼り付けます。
=trim(REGEXEXTRACT(A1,"(?:\s)[^\n]*"))
次の数式を列cに貼り付けます。
=JOIN(", ",indirect(ADDRESS((row()-1)*5+1,2)&":"&ADDRESS((row())*5,2)))
希望するテキストのリストは列cにあります。
ここでは正規表現が過剰だと感じています。非正規表現の方法-
セル範囲A1:A5には、ソート後のサブジェクトキーワードが含まれていると仮定します。コンマ区切りリストが必要なセルでこの数式を試してください
=ArrayFormula(concatenate(A1:A5&", "))
列Aの文字列を想定して、試してください
=Textjoin(", ", 1, ArrayFormula(if(len(A1:A), regexextract(A1:A, "\s(.+)\n"),)))
それが機能するかどうかを確認しますか?
(範囲をスーツに合わせて変更します)。