(Excel 2013) 在不超过特定字符限制的情况下组合两个单元格值

(Excel 2013) Combining two cell value without exceeding certain characters limit

我试图用 excel 公式解决这个问题,但它太复杂了,因为我需要工作簿中的公式较少。所以我转向 VBA 寻求帮助。到目前为止,我发现的所有 VBA 主要用于 trim 单单元格字符。

我的项目需要如下:

A1-Name
B1-Colour
C1-Name(Colour)

如果 LEN(C1) 小于 81 则什么都不是 trim。否则,TRIM 仅 A1 不改变 B1,所以最终结果是 LEN(C1) 总是小于 81。

谢谢。

编辑: Excel Screenshot 1

我试过的是:

-我将在单元格 AA2 中的 B2 上执行 "len",然后在单元格 AB2 中的 C2 上执行另一个 "len"。
- 然后我在单元格 D2 中合并 B2 和 C2。
- 为单元格 E2 中的单元格 D2 再做一个 "len"。
-如果 E2 中的值超过 80,那么我必须对单元格 B2 执行 "right" 另一个 cell.The 将从单元格 B2 中扣除的值是 AA2-80+AB2。
-完成后,新的 trim B2 将与另一个单元格中的 C2 重新组合。

新单元格太多了。如您所见,我必须隐藏一些构成单元格 F2 内部内容的单元格。所以我在这里。用那封信 "E" 照亮聚光灯,这样 Excelman 就会前来救援。

一个非常简单的 Excel 公式可以满足您的需求

=LEFT(A1,MAX(0,78-LEN(B1))) & "(" & B1 & ")"

即从 A1 中取出尽可能多的字符,以便在连接到 "("&B1&")" 时总数不会超过 80 个字符,然后将其连接到 "("&B1&")".

注意:以上公式中的单元格引用基于您的原始问题。根据屏幕截图和对您问题的编辑,公式为:

=LEFT(B2,MAX(0,78-LEN(C2))) & "(" & C2 & ")"

如果您确实需要 VBA,您可以使用相同的函数(即 LeftLen)和相同的运算符(即 -&) 在 VBA 中与在 Excel 中使用的一样。唯一的问题是 MAX,需要将其替换为 Application.MaxIf 语句。