Tôi cần thay thế 3 ký tự cuối cùng của nội dung của một ô dựa trên giá trị trong một ô khác


1

Cột 1 chứa các giá trị như sau:

AAA
AAB
AABAAA
AABAAB
AABAAC
AABAACAAA

Cột 2 chứa các số như 1, 2, 3, 4, 5, 6

Tôi cần thay đổi 3 ký tự cuối cùng trong cột 1 dựa trên giá trị trong cột 2

Quy tắc là 1 = AAA, 2 = AAB, 3 = AAC, 4 = AAD, v.v .....

Ví dụ: nếu Cột 1 chứa AABAAC và giá trị trong Cột 2 là 1, tôi cần thay đổi 3 ký tự cuối cùng trong Cột 1 thành AAA. Kết quả cho cột 1 sau đó sẽ là AABAAA


Bạn có thể sẽ cần một macro cho điều này, bạn đã thử những gì?
Raystafarian

Nó có thể giúp chúng tôi biết bạn có phiên bản Excel nào. (2003? 2007?) Và nhân tiện, Excel không có Cột 1 và 2; nó có cột AB. Hàng có số.
Scott

Câu trả lời:


0

Có một số cách để thực hiện điều này ... nhưng tôi khuyên bạn nên có một bảng tra cứu ở đâu đó trong trường hợp bạn cần sửa đổi các giá trị mà các số tương ứng với:

Trong Cột 1 của bạn, giá trị phải giống như thế này:

="AAA AAB AABAAA AABAAB AABAAC AABAAC" & LOOKUP(B1,Sheet2!A$1:A$9999,Sheet2!B$1:B$9999)

Trên trang 2, bạn tạo một cái gì đó để công thức tra cứu như thế này:

Excel Screenshot

... V.v., cho đến khi bạn đạt được nhiều giá trị bạn có thể muốn tìm kiếm.

Tôi nghĩ rằng đây là phương pháp dễ nhất ... nhưng một số phương thức thay thế có thể bao gồm dựa vào hàm CHAR () có thể lấy giá trị số, thêm 40 và đưa ký tự đi từ AZ ... giả sử bạn sử dụng giá trị số 1- 26 ... Hoặc bạn có thể đi theo con đường cực đoan hơn và tạo một chức năng trong VBA sẽ hiển thị theo cách bạn thấy phù hợp. Phương pháp cuối cùng có lẽ không phải là ý tưởng tốt nhất vì bạn sẽ phải nhảy qua một loạt các vòng để làm cho nó hoạt động.


0

Bạn có ý nghĩa gì khi thay đổi thế giới? Nó có đủ tốt để tạo một cột mới không có chứa các giá trị thao tác? Nếu vậy, hãy thiết lập bảng tra cứu như mô tả bởi TheCompWiz , bộ C1 đến

=LEFT(A1, LEN(A1)-3)  &  VLOOKUP(B1, Sheet2!A$1:B$9999, 2)

và kéo / điền xuống. LEFT(X, LEN(X) - 3) là tất cả X ngoại trừ 3 nhân vật bên phải nhất và & là nối chuỗi.


Câu hỏi nói rằng,

Quy tắc là 1 = AAA, 2 = AAB, 3 = AAC, 4 = AAD, v.v ...

Điều này trông giống như một loại ký hiệu cơ sở 26. Tôi đoán 26 = AAZ, 27 = ABA, 260 = AJZ, 261 = AKA, 676 (26 × 26) = AZZ, 677 = BAA, v.v. Thật trùng hợp, điều này trông rất giống với cách các cột nhãn Excel. Nếu bạn có phiên bản Excel hiện tại đủ (2007? 2010?), Bạn có thể lấy phiên bản này với công thức

LEFT(ADDRESS(1, 26*26 + 26 + n , 4), 3)

Ở đâu ADDRESS là chức năng biến tọa độ thành một địa chỉ ô. Ví dụ, ADDRESS(4, 2, …) trả lại B4ADDRESS(4, 27, …) trả lại AA4. Tham số thứ ba chỉ định nên sử dụng địa chỉ tuyệt đối hay tương đối; 4 có nghĩa là hàng và cột là tương đối. Vì thế ADDRESS(1, 26*26 + 26 + 1, 4)AAA1, và LEFT(string, 3) trả về ba ký tự đầu tiên (ngoài cùng bên trái) của string. Rõ ràng là bạn sẽ cắm vào B1 cho n.

P.S. Bạn cần phiên bản Excel hiện tại vì trong Excel 2003 trở về trước (và tôi không chắc chắn về năm 2007), một bảng tính có thể có tối đa 256 cột và ADDRESS Hàm won đã để lại cho bạn tạo tên của một ô có thể tồn tại (ví dụ: một ô có số cột & gt; 256).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.