Улучшить отображение позиционной кодировки для целей отладки, возможно, используя Excel с одним символом на ячейку

Улучшить отображение позиционной кодировки для целей отладки, возможно, используя Excel с одним символом на ячейку

Мне нужно решить следующую проблему: я работаю с файлами с позиционной кодировкой. Эти файлы показывают символы в определенных позициях в строке. Каждая строка — это запись, и значение символа в строке зависит от его позиции. Чтобы отладить и исправить их, мне нужно убедиться в позиции курсора на текущей строке файла.

Большинство редакторов, включая Notepad++, отображают позицию столбца в файле. Однако, хотя это и полезно, я хотел бы сделать это проще.

Мне нужен редактор, который каким-то образом выделял позиции символов в моих файлах.

Вот о чем я подумал: использованиеЭксель 2010один символ на ячейку.

В идеале, если бы Excel позволял мне вставлять текст в предварительно отформатированную таблицу с помощьюцвета,границыизаголовки столбцовЯ бы решил свою проблему. Но мне нужно убедиться, что Excel принимает вставку, вставляя каждый символ в ячейку, переходя к следующей строке, когда встречается CRLF.

Это довольнопроблема XYи я надеюсь, что я задал свой вопрос наилучшим образом

  • Проблема X: улучшить читаемость файлов с позиционной кодировкой
  • Проблема Y: учитывая, что Excel может быть хорошим союзником, как мне вставить целый файл в ячейку «одна ячейка на символ» с одним знаком « CTRLV?

Пример

Поскольку реальные данные действительно сложно разместить в этом вопросе, общий набор данных можно выразить (в документации) следующим образом:

  • Каждая строка создает одну запись
  • Символ 0 — тип данных, буквенно-цифровой
  • Символы 1:8 — это фамилия
  • Персонажи 9:15 — это имя
  • Символы 16:30 — это номер телефона.
  • Символы 31:38 — дата рождения в формате ггггММдд
  • Символы-заполнители — это пробелы.
  • Строки заканчиваются на CRLF

Пример «действительной» записи (я печатаю ее вручную)

0SMITH   JOHN    +13652145896   19780101\r\n

Следуя примеру Excel, я мог бы отобразить эти данные в цветных столбцах и легко редактировать таблицу с помощью направляющих цветов/границ.

решение1

Очень сосредоточенный на "один символ на ячейку", я бы предложил шаблон, где ColumnA Листа 2:5 заполнен Листом 1! B:B до E:E соответственно. Затем сгруппируйте так, чтобы в каждом из Листа 2:5 B1 имелся =MID($A1,COLUMN()-1,1)и скопируйте поперек и вниз по мере необходимости. Лист 1 зарезервирован для ваших исходных данных:

Пример SU603915

решение2

Следующая формула, кажется, работает хорошо, когдаотображениенабор данных

Локализованный

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

Ручная интернационализация (пожалуйста, исправьте названия функций в английском Excel)

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

Теперь мне просто нужно скопировать его на весь лист и добавить форматирование/границы/раскраску (тысячи записей в каждом наборе данных)

Проблема подхода с формулой в том, что я не могу легкоредактироватьданные в наборе данных, но по крайней мере у меня есть четкое представление о том, где искать редактирование и где может быть ошибка в наборе данных (или просто «немедленное понимание данных»)

решение3

Самый простой способ сделать это — просто использовать предварительно отформатированный лист Excel (шаблон) и использовать опцию Data>From Text>Fixed Width. Это позволит вам поместить любые/все символы в их собственную ячейку, и вы можете начать свой диапазон с любой ячейки электронной таблицы, которая вам нравится.

Если это будет повторяющаяся задача, я бы использовал VBA, чтобы немного автоматизировать процесс, возможно, используя диалоговое окно для запроса файла и точки вставки, но выполняя все остальное автоматически.

Что касается Y, я не думаю, что какой-либо из вариантов вставки, особенно «Вставить», CTRLVдаст то, что вам нужно.

Связанный контент