1

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

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

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

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

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

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

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

пример

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

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

Пример "правильной" записи (я набираю ее вручную)

0SMITH   JOHN    +13652145896   19780101\r\n

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

3 ответа3

1

Следующая формула работает нормально при отображении набора данных

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

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

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

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

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

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

1

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

Пример SU603915

0

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

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

Что касается вашего Y, я не думаю, что какой-либо из параметров вставки, особенно CTRL V, будет делать то, что вы хотите.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .