Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
28
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

@eiryu

Excelで「表示形式」のセル書式が反映されない場合の対処法

TSVなどのデータをExcelに貼り付ける場合、勝手にデータが変更されないように(0001が1になるなど)、セルの書式設定で表示形式を「文字列」にしてから貼り付けることが多い。

以下は「文字列」で貼り付けた例。文字が左に寄っていることからもそれがうかがえる。(設定によっては緑三角が見える?)

p1.PNG

しかし、idなどの情報は数字として扱いたい。なぜなら「文字列」として貼ってある状態でソートすると辞書順になってしまうから。(1、10、2のように並んでしまう)

貼る前の段階でそういう書式設定にしていれば問題ないのだが、数字として扱いたい列が複数ある場合は、まず貼り付けてからそれを行った方が楽。
しかし、Excelは既にデータがある状態で表示形式を変えても、反映されないことがある。。

以下のように「文字列」表示形式で貼り付けたものを、「標準」表示形式に変えても、見た目やソートの扱いは文字列のまま。。

p2.PNG

この場合、一度F2を押してセルの中に入り、エンターを押すと現在の書式を適用させることは出来る。(自分はこれを「セル内容の再確定」と呼んでいる)
しかし、その対象が多いと非常に手間。

以下のVBAモジュールを作成し、書式を適用したいところを選択状態にして実行すると、それを一括で行うことが出来る。

Sub reconfirm()
    For Each e In Selection
        e.Value = e.Value
    Next
End Sub

実行後、以下のようになり、「標準」表示形式が適用されたことが分かる。

p3.PNG

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
28
Help us understand the problem. What are the problem?