字体粗细BOLD使用单元格中的公式

11 google-sheets

我正在使用Google Spreadsheet进行一些计算.

在我的桌子的底部,我需要SUM,AVG和其他一些,一切都很好.

但我用所有文本制作了一个长单元格,如下所示:

="Hi at all, this is my report: "&SUM(B:B)&" are the sum of my fingers, "&AVG(C:C)&" is the avg of my sons."
Run Code Online (Sandbox Code Playgroud)

等等.

一切正常.但我需要大胆一点SUM(B:B).

我不会将单个单元格用于数学结果.

我尝试过,....<b>"&SUM(B:B)&"</b>....但显然我接受<b></b>了我的细胞,而不是粗体字体重.

如何从细胞中的配方样式?

Ren*_*ce4 6

是的,这是可能的。


我自己的解决方案在底部,但我发现 Adrian Mihai Nemes 在这里添加的解决方案更干净。因此,我在这里扩展了该解决方案,使其适用于小写字母、大写字母和数字。这应该适用于包含任何内容的文本,包括换行符、单引号、表情符号等。

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B25,"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",""),"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",""),"0",""),"1",""),"2",""),"3",""),"4",""),"5",""),"6",""),"7",""),"8",""),"9","")
Run Code Online (Sandbox Code Playgroud)

对于我自己的解决方案,这会将所有小写字母、大写字母和数字加粗。它应该适用于包含任何内容的文本,包括换行符、单引号等(也许不是表情符号?)。

只需将单个A2引用替换为您想要粗体显示的内容即可:

=ARRAYFORMULA(JOIN("", UNICHAR(QUERY(UNICODE(SPLIT(TRANSPOSE(SPLIT(
    REGEXREPLACE(
        REGEXREPLACE(REGEXREPLACE(REGEXREPLACE(REGEXREPLACE(REGEXREPLACE(A2&""
            ,"([^a-zA-Z0-9])","$1"&UNICHAR(160)&UNICHAR(1)&CHAR(127))
            ,"'","''")
            ,"([a-z])","$1"&UNICHAR(160)&UNICHAR(119738)&CHAR(127))
            ,"([A-Z])","$1"&UNICHAR(160)&UNICHAR(119744)&CHAR(127))
            ,"([0-9])","$1"&UNICHAR(160)&UNICHAR(120735)&CHAR(127))
    ,"'","''")
,CHAR(127))), UNICHAR(160))), "select Col1+Col2-1 label Col1+Col2-1 ''",0))))
Run Code Online (Sandbox Code Playgroud)

概述: 对于每个字符组(小写、大写、数字),我们使用串联REGEXREPLACE调用来附加特殊分隔符以及该组粗体字体的基本 unicode 字符。

例如,Hi-1变成"H"&UNICHAR(160)&UNICHAR(119743)&CHAR(127)&"i"&UNICHAR(160)&UNICHAR(119737)&CHAR(127)&"-"&UNICHAR(160)&UNICHAR(1)&CHAR(127)&"1"&UNICHAR(160)&UNICHAR(120734)&CHAR(127).

一旦我们有了这个新字符串,我们就对 CHAR(127) 进行拆分并进行转换,因此每个字符都位于自己的行上。所以现在的例子变成了:

"H"&UNICHAR(160)&UNICHAR(119743)
"i"&UNICHAR(160)&UNICHAR(119737)
"-"&UNICHAR(160)&UNICHAR(1)
"1"&UNICHAR(160)&UNICHAR(120734)
Run Code Online (Sandbox Code Playgroud)

接下来,我们对UNICHAR(160)角色进行划分:

"H", UNICHAR(119743)
"i", UNICHAR(119737)
"-", UNICHAR(1)
"1", UNICHAR(120734)
Run Code Online (Sandbox Code Playgroud)

我们使用该UNICODE()函数将实际字符及其相应的 UNICHAR 转换为它们的 unicode 数字:

72, 119744
105, 119738
45, 1
49, 120735
Run Code Online (Sandbox Code Playgroud)

现在,我们使用该QUERY()函数对每一行进行单独求和。这就是"select Col1+Col2-1 label Col1+Col2-1 ''"进来的地方。它将第 1 列添加到第 2 列,并从基本 unicode 值中去掉额外的 1,然后防止将标题标签添加到函数输出中。所以,现在我们得到:

119815
119842
45
120783
Run Code Online (Sandbox Code Playgroud)

我们使用下一个UNICHAR()函数将它们转换为它们的 unicode 字符,此时它是相应的粗体字符:



-

Run Code Online (Sandbox Code Playgroud)

最后,我们使用JOIN()带有空字符串""分隔符的 a 将其全部组合回单个字符串。

-
Run Code Online (Sandbox Code Playgroud)

ps 如果您好奇为什么需要将不同的字符组分开,那是因为每个组都与其相应的粗体字符按顺序排列在一起,但并非所有 3 个字符组都排成一行。普通类型组之间有一些额外的字符,您在 unicode 的粗体部分看不到这些字符。因此,必须为每个字符组指定其自己的基本 unicode 值,以便将其添加到该普通字符的 unicode 值中。

pps 如果您想添加更多字符,则只需添加另一个REGEXREPLACE()包含正确字符组的换行,以及UNICHAR()该组的正确基本 unicode 值,然后将该新组添加到第一个 的排除项中REGEXREPLACE()。如果需要的话,很乐意进一步解释这一点。

ppps需要REGEXREPLACE()将单引号'替换为两个单引号'',因为当我们将字符拆分到各自的单元格时,Google 表格实际上会将前导单引号视为特殊字符并将其删除。因此,实际上,两个单引号在拆分后会转换为一个单引号。


Adr*_*mes 5

最近我遇到了同样的问题,但我找到了解决方案。此解决方案在 google 表格中运行良好。

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(E3,"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",""),"0",""),"1",""),"2",""),"3",""),"4",""),"5",""),"6",""),"7",""),"8",""),"9","")
Run Code Online (Sandbox Code Playgroud)

如果您想改进公式,请使用以下字符:

ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789abcdefghijklmnopqrstuvwxyz

Run Code Online (Sandbox Code Playgroud)

  • 惊人的。它杀死了我的脑细胞..但仍然很棒,伙计。 (2认同)

小智 5

如果有人需要的话,我更新了阿德里安的公式,将样式设置为无衬线字符而不是衬线字符。它包括小写和大写字母以及数字。

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(D2,"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",""),"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",""),"0",""),"1",""),"2",""),"3",""),"4",""),"5",""),"6",""),"7",""),"8",""),"9","")
Run Code Online (Sandbox Code Playgroud)


bet*_*208 4

目前,在 Google 表格中,您无法将任何公式的部分组成部分加粗。仅当所需的粗体选择是包含公式的整个单元格或不包含公式的单元格的一部分时,提到的使用“B”或粗体图标的解决方案才有效。