Tăng cường hiển thị mã hóa vị trí cho mục đích gỡ lỗi, có thể sử dụng Excel một ký tự cho mỗi ô


1

Tôi có một vấn đề sau đây cần giải quyết: Tôi làm việc với các tệp được mã hóa theo vị trí. Các tệp này hiển thị các ký tự tại các vị trí nhất định trong chuỗi. Mỗi hàng là một bản ghi và ý nghĩa của một ký tự trong một hàng phụ thuộc vào vị trí của nó. Để gỡ lỗi và sửa chúng, tôi cần đảm bảo về vị trí con trỏ trên dòng tệp hiện tại.

Hầu hết các trình soạn thảo, bao gồm Notepad ++, hiển thị vị trí cột trong tệp. Tuy nhiên, trong khi hữu ích, tôi muốn làm cho nó đơn giản hơn.

Tôi muốn một biên tập viên để làm nổi bật vị trí nhân vật trong các tập tin của tôi.

Đây là những gì tôi nghĩ về: sử dụng Excel 2010 một ký tự cho mỗi ô.

Lý tưởng nhất, nếu Excel cho phép tôi dán văn bản vào bảng được định dạng sẵn với màu sắc , đường viềncột tiêu đề, tôi sẽ giải quyết được vấn đề của mình. Nhưng tôi phải đảm bảo Excel chấp nhận dán bằng cách chèn từng ký tự vào một ô, chuyển sang hàng tiếp theo khi tìm thấy CRLF.

Đây là một vấn đề XY và tôi hy vọng tôi đã hỏi câu hỏi của mình một cách tốt nhất

  • Vấn đề X: tăng cường khả năng đọc của các tệp được mã hóa theo vị trí
  • Vấn đề Y: cho rằng Excel có thể là một đồng minh tốt, làm cách nào để tôi dán toàn bộ tệp vào một ô trên mỗi ký tự với một dấu CTRL+ V?

Thí dụ

Vì dữ liệu thực sự rất phức tạp để đăng trong câu hỏi này, một bộ dữ liệu chung có thể được thể hiện (trong tài liệu) như sau:

  • Mỗi hàng tạo một bản ghi
  • Ký tự 0 là kiểu dữ liệu, chữ và số
  • Ký tự 1: 8 là họ
  • Nhân vật 9:15 là tên đầu tiên
  • Nhân vật 16:30 là một số điện thoại
  • Ký tự 31:38 là ngày sinh ở định dạng yyyyMMdd
  • Nhân vật phụ là không gian
  • Các dòng được kết thúc bằng CRLF

Ví dụ bản ghi "hợp lệ" (Tôi đang gõ bằng tay)

0SMITH   JOHN    +13652145896   19780101\r\n

Theo ví dụ Excel, tôi có thể hiển thị dữ liệu này trong các cột màu và dễ dàng chỉnh sửa biểu dữ liệu với các hướng dẫn màu / viền


Điều này cũng có thể phù hợp với stackoverflow
usr-local-ΕΨΗΕΛΩΝ

Ví dụ giúp, cảm ơn bạn đã thêm nó. Điều này trông giống như một tệp văn bản có chiều rộng cố định tiêu chuẩn, vì vậy nó sẽ khá dễ dàng để làm việc với. Khi bạn nói về việc chỉnh sửa tệp, bạn có đang làm sạch dữ liệu để sẵn sàng nhập vào cơ sở dữ liệu / chương trình khác không? Nếu vậy, bạn chỉ cần xác thực dữ liệu cho mỗi cột / ký tự?
dav

Không, tôi xác nhận "bằng tay" và tôi sẽ sao chép / dán các ô vào tệp văn bản để được nhập bởi một ứng dụng
usr-local-ΕΨΗΕΛΩΝ

Ngoài ra, việc xác thực dữ liệu chỉ dành cho loại dữ liệu (ví dụ: alpha v. Số) hoặc cho dữ liệu thực tế (ví dụ: Họ là tên thật, không chỉ là các ký tự ngẫu nhiên)?
dav

1
Cái cuối cùng. Thông số kỹ thuật thực sự phức tạp hơn nhiều và tôi yêu cầu một số trường nhất định khớp với các mã đã cho và khi có một mã cụ thể, một số trường phải có mặt trong khi một số trường khác thì không. Xác thực hoàn toàn đã được triển khai trong việc nhập phần mềm, nhưng nhu cầu của tôi là dễ dàng sửa chữa: lỗi phổ biến nhất là sai số lượng khoảng trống
usr-local-ΕΨΗΕΛΩΝ

Câu trả lời:


1

Tập trung rất nhiều vào "một ký tự cho mỗi ô" Tôi muốn đề xuất một mẫu trong đó CộtA của Trang tính 2: 5 được điền vào Trang tính 1! B: B đến E: E tương ứng. Sau đó, nhóm như vậy trong mỗi Bảng2: 5 B1 có =MID($A1,COLUMN()-1,1)và sao chép qua lại theo yêu cầu. Trang tính 1 được dành riêng cho dữ liệu nguồn của bạn:

Ví dụ SU603915


1
Dù sao, tôi phát hiện ra rằng việc chia bản ghi trong các chuỗi con thay vì trong "một ô trên mỗi ký tự" giúp tăng cường khả năng đọc hơn mức đạt được ngay bây giờ. Ủng hộ vì trả lời câu hỏi
usr-local-ΕΨΗΕΛΩΝ

1

Công thức sau đây có vẻ hoạt động tốt khi hiển thị tập dữ liệu

Bản địa hóa

=STRINGA.ESTRAI(INDIRETTO(CONCATENA("PASTEME!A";RIF.RIGA()));RIF.COLONNA();1)

Quốc tế hóa bằng tay (vui lòng sửa tên hàm trong tiếng Anh Excel)

=MID(INDIRECT(CONCATENATE("PASTEME!A",ROW())),COLUMN(),1)

Bây giờ tôi chỉ cần sao chép nó vào toàn bộ trang tính và thêm định dạng / viền / tô màu (hàng ngàn bản ghi trong mỗi tập dữ liệu)

Vấn đề với cách tiếp cận công thức là tôi không thể dễ dàng chỉnh sửa dữ liệu trên tập dữ liệu, nhưng ít nhất tôi có một ý tưởng rõ ràng về nơi tìm kiếm chỉnh sửa và nơi có thể có lỗi trong tập dữ liệu (hoặc đơn giản là "hiểu ngay dữ liệu ")


0

Cách dễ nhất để làm điều này là chỉ cần sử dụng bảng tính Excel (mẫu) được định dạng sẵn và sử dụng Data>From Text>Fixed Widthtùy chọn. Điều này sẽ cho phép bạn mang bất kỳ / tất cả các ký tự trong ô riêng của họ và bạn có thể bắt đầu phạm vi của mình tại bất kỳ ô bảng tính nào bạn muốn.

Nếu đây sẽ là một nhiệm vụ lặp đi lặp lại, tôi sẽ sử dụng VBA để tự động hóa quá trình một chút, có lẽ sử dụng hộp thoại để yêu cầu tệp và một điểm để chèn, nhưng tự động thực hiện tất cả phần còn lại.

Đối với Y của bạn, tôi không nghĩ bất kỳ tùy chọn Dán nào, đặc biệt CTRLVsẽ làm những gì bạn muốn.


Tôi nghĩ rằng bạn đã trả lời một phần phần Y của tôi: nếu VBA có thể được sử dụng, nó có thể được sử dụng để phân tách chuỗi được dán vào bảng tính, IMHO. Nhưng tôi không biết VBA và nếu nó hỗ trợ chặn sự kiện dán, nhưng có thể là điểm khởi đầu tốt.
usr-local-ΕΨΗΕΛΩΝ

Ngoài ra, tôi đã tìm kiếm một vài công thức có thể giúp tôi chia một chuỗi được dán trong một ô / tờ khác
usr-local-ΕΨΗΕΛΩΝ

1) Tôi nghĩ rằng chúng ta đang nói về hai mặt của cùng một vấn đề - Tôi khá chắc chắn VBA có thể sử dụng Paste như một phần của quy trình, nhưng nó sẽ không phải là Paste, đó sẽ là VBA sử dụng Paste - một trẻ vị thành niên, nhưng tôi nghĩ phân biệt quan trọng. 2) Có thể có một số phương pháp công thức để giải quyết văn bản được dán ở nơi khác trong bảng tính. Bạn có thể cung cấp một mẫu nhỏ dữ liệu của bạn? Nếu bạn đang mở một giải pháp VBA, bạn nên thêm thẻ, có thể bạn sẽ chú ý thêm vào câu hỏi của mình.
dav

Tôi sẽ chỉ sử dụng VBA như là phương sách cuối cùng. Đã thêm thẻ
usr-local-ΕΨΗΕΛΩΝ
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.