我正在使用Google Data studio 创建报告,数据是直接从Google Analytics 获取的。关于网络流量测量。
问题是我想可视化顶级类别..
所以数据在“URL”表示中,例如.. /entradas/delicias-de-delhi/
"/delicias-de-delhi/" 是一种产品,来自许多类别的数千种产品之一。
我想用图表或表格形象化,顶级产品和那种员工,但他们的名字是这样的格式:Delicias de Delhi.
我想出了如何摆脱斜杠“/”和连字符“-”的方法,问题是我还想在每个单词的第一个字母中使用大写字母。我尝试使用 Upper() 函数,但它会转换大写字母中的所有内容。 DELICIAS DE DELHI,这不是我想要实现的。
我真的很感激一些帮助!
Data Studio 不支持在正则表达式替换中使用
\U \1
转换为大写字母。
但是可以通过以下解决方法需要转义字符,这里是
*
来标记大写字母。
假设url在字段
URL_field
中,第一步是获取url的最后一部分。领域dummy0
是
REGEXP_EXTRACT(dummmy, r"/([^/]*)/*$")
取第一个字母并将其放大。任何数量的空格或
-
都会转换为双空格。
然后对于每个长于两个字母的“单词”被分成*w<ord
,因此w
被标记为大写。为此创建了一个字段dummmy1
:
REGEXP_REPLACE(
REGEXP_REPLACE(CONCAT(upper(left_text(dummy0,1)),
REGEXP_REPLACE(substr(dummy0,2,999),r"[\s-]+"," "),
" "), r"\s([a-z])(\w\w+)\s", r" *\1<\2 ")
, r"\s$", "")
下一步我们可以为字母表中的每个字母做
replace(...,"*a<,"A")
;然而,这会过于嵌套,而 Data Studio 不允许这样做。因此,需要另一种方法。四个内部regexp_replace
在每个标记字符*w<
周围添加整个大写字母。此外,标记的字符直接在其大写字母之前。
因此,*w<ord
被转换为 *ABC...UVwWXYZord
。然后将其替换为***wWXYZord
。这被转化为Word
.
regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(regexp_replace(
dummy1
,r"\*(a{0,1})(b{0,1})(c{0,1})(d{0,1})(e{0,1})(f{0,1})(g{0,1})(h{0,1})([i-z]{0,1}\<)",r"*\1A\2B\3C\4D\5E\6F\7G\8H*\9")
,r"H\*(i{0,1})(j{0,1})(k{0,1})(l{0,1})(m{0,1})(n{0,1})(o{0,1})(p{0,1})([q-z]{0,1}\<)",r"\1I\2J\3K\4L\5M\6N\7O\8P*\9")
,r"P\*(q{0,1})(r{0,1})(s{0,1})(t{0,1})(u{0,1})(v{0,1})(w{0,1})(x{0,1})([y-z]{0,1}\<)",r"P\1Q\2R\3S\4T\5U\6V\7W\8X*\9")
,r"X\*(y{0,1})(z{0,1})\<",r"X\1Y\2Z")
,r"\*A*B*C*D*E*F*G*H*I*J*K*L*M*N*O*P*Q*R*S*T*U*V*W*X*Y*Z*",r"***")
,r"\*\*\*.(.)A*B*C*D*E*F*G*H*I*J*K*L*M*N*O*P*Q*R*S*T*U*V*W*X*Y*Z*",r"\1")
CONCAT(UPPER(LEFT_TEXT(dummy,1)),SUBSTR(dummy,2,20))