Tôi thấy từ nhận xét của bạn rằng các ô của bạn rất có thể có định dạng tùy chỉnh và giá trị được hiển thị trong các ô này có thể khác với giá trị đã nhập (ví dụ: "8" được hiển thị là "08"). Trong trường hợp này, bạn có thể nối từng giá trị được gói trong một TEXT
hàm với định dạng đã chỉ định của ô. Ví dụ: nếu A1
có định dạng tùy chỉnh "00", bạn sẽ sử dụng TEXT(A1,"00")
làm thuật ngữ cho A1
công thức nối của mình. Đối với công thức đầy đủ, bạn có thể có một cái gì đó như thế này:
=TEXT(A1,"00")&TEXT(B1,"@")&TEXT(C1,"0")&...
Tất nhiên, điều này là tẻ nhạt vì nó yêu cầu bạn phải tự tạo lại định dạng của từng ô. Nếu bạn sẽ sử dụng nó rất nhiều với nhiều định dạng khác nhau, tôi sẽ nói rằng đây là một cơ hội hoàn hảo để sử dụng chức năng VBA để thực hiện các công việc nặng. Bạn có thể dán mã sau vào mô-đun trong Trình chỉnh sửa VBA (được mở bằng cách nhấn Alt+ F11).
Public Function CONCATwFORMATS(rng1 As Range) As String
Dim tmpstr As String, tmpFormat As String
Dim c As Range
For Each c In rng1
tmpFormat = c.NumberFormat
If tmpFormat = "General" Then
tmpstr = tmpstr & c.Value
Else
tmpstr = tmpstr & Format(c.Value, tmpFormat)
End If
Next c
CONCATwFORMATS = tmpstr
End Function
Sau đó, bạn có thể sử dụng công thức sau trong G1
.
=CONCATwFORMATS(A1:F1)
Đây chỉ là một nỗ lực nhanh chóng với mã này, vì vậy hãy lưu ý hai yêu cầu của hàm:
- Nó chỉ lấy một phạm vi tiếp giáp làm đối số.
- Nó nối các giá trị theo thứ tự từ trái sang phải (và từ trên xuống dưới).
Mã có thể được điều chỉnh để loại bỏ những hạn chế này, nhưng với những gì bạn muốn, có vẻ như điều này sẽ hoạt động tốt.