デバッグ目的で位置エンコードの表示を強化する(Excel の 1 セルあたり 1 文字を使用するなど)

デバッグ目的で位置エンコードの表示を強化する(Excel の 1 セルあたり 1 文字を使用するなど)

解決すべき問題が次のとおりです。位置エンコードされたファイルを扱っています。これらのファイルには、文字列内の特定の位置にある文字が表示されます。各行はレコードであり、行内の文字の意味はその位置によって異なります。デバッグして修正するには、現在のファイル行のカーソル位置を確認する必要があります。

Notepad++ を含むほとんどのエディターでは、ファイル内の列の位置が表示されます。ただし、便利な反面、もっとシンプルにしたいと思っています。

エディターでファイル内の文字の位置を強調表示できるようにしたいです。

私が考えたのは次のことです。エクセル2010セルごとに 1 文字。

理想的には、Excelでテキストをあらかじめフォーマットされた表に貼り付けることができ、国境そして見出し列問題は解決したはずです。しかし、セルに各文字を挿入し、CRLF が見つかったら次の行に移動して、Excel が貼り付けを受け入れるようにする必要があります。

これはかなりXY問題そして、私が質問を最善の方法でできたことを願っています

  • 問題 X: 位置エンコードされたファイルの読みやすさを向上させる
  • 問題 Y: Excel が役に立つと仮定すると、ファイル全体を 1 つのCTRL+で 1 文字につき 1 つのセルに貼り付けるにはどうすればよいでしょうかV

実際のデータをこの質問に投稿するのは非常に複雑なので、一般的なデータセットは次のように(ドキュメントで)表現できます。

  • 各行は1つのレコードを構成します
  • 文字0はデータ型、英数字
  • 1:8の文字は姓です
  • 9:15の文字はファーストネームです
  • 16:30の文字は電話番号です
  • 31:38の文字はyyyyMMdd形式の生年月日です
  • フィラー文字はスペースです
  • 行はCRLFで終了します

「有効な」レコードの例(手動で入力しています)

0SMITH   JOHN    +13652145896   19780101\r\n

Excelの例に従って、このデータを色付きの列に表示し、色/境界線ガイドを使用してデータシートを簡単に編集できます。

答え1

「1 セルにつき 1 文字」に重点を置いたテンプレートとして、Sheet2:5 の列 A に Sheet1 を入力することをお勧めします。それぞれ B:B から E:E まで入力します。次に、Sheet2:5 の B1 がそれ​​ぞれあるようにグループ化し=MID($A1,COLUMN()-1,1)、必要に応じて横方向および縦方向にコピーします。Sheet1 はソース データ用に予約されています。

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 を使用してプロセスを少し自動化します。たとえば、ダイアログ ボックスを使用してファイルと挿入先のポイントを要求し、残りはすべて自動的に実行します。

CTRLVY に関しては、特に貼り付けオプションのいずれも、必要な機能を実行できないと思います。

関連情報