雑・Excel入門試論 - 脱VLOOKUPの思考 04 - セル - 文字列型

# データ型
　エクセルの中で扱われるデータ型は、以下の４つの基本データ型からできています。

- 数値 (Number)
- 文字列 (Text)
- 論理値 (Logical value)
- エラー (Error value)

# テキストデータとは
　アルファベット、数字、特殊記号、Unicode文字などが含まれます。数値データとテキストデータの違いは、計算できるかどうかです。日付や数値は規定ではテキストデータとして認識されません。目的に応じて書式設定する必要があります。

# Case Insensitive
　エクセルの文字列は、大文字と小文字を区別しないCase Insensitiveで扱われます。下記のように、"Cat"と"cat"を比較（"Cat"="cat"）すると、TRUEが返されます。また、「禰豆子」と「禰󠄀豆子」の比較もTRUEが返されます。「禰」と「禰󠄀」は、Unicodeでは異字体セレクタというコードで区別されていますが、Excelの（「禰󠄀豆子」が正しく表示されないのですが）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/bf7ec9a4-332d-41a6-3f22-75f5652d0101.png)
　大文字、小文字を区別して比較する必要がある場合は、EXACT関数を使用します。（EXACT("Cat","cat")）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/7953dbad-64b0-0387-aacc-fe003fb5a5d6.png)
 上図のように、文字列の比較は以下のルールになっています。

- CS (Case-Insensitive) 大文字と小文字の区別しない
- AS (Accent-Sensitive) "a"と"á"、"ば"と"ぱ"の区別する
- KS (Kana-Sensitive) ひらがなとカタカナの区別する
- WS (Width-Sensitive) 半角と全角の区別する

# ふりがな
　オプションの[「Officeの編集言語と構成機能」](https://qiita.com/spumoni/items/75955db69cc34695de14#office%E3%81%AE%E7%B7%A8%E9%9B%86%E8%A8%80%E8%AA%9E%E3%81%A8%E6%A0%A1%E6%AD%A3%E6%A9%9F%E8%83%BD-office-authoring-languages-and-proofing)が日本語になっている場合は、ふりがなが有効になります。
　セルに日本語変換をして入力すると、Open XML では SharedStrings.xml に全てのシートの文字列が保存されます。日本語変換を使って入力すると、ふりがなが **rPh** タグで登録されています。

```xml:sharedStrings.xml
  <si>
    <t>一</t>
    <rPh sb="0" eb="1">
      <t>イチ</t>
    </rPh>
    <phoneticPr fontId="1" />
  </si>
```
　同一ブック内で、ふりがなも同じ文字列は１つのデータとして保存されますが、ふりがなが異なる場合は別のデータとして保存されます。

```xml:ふりがなが異なる文字列
  <si>
    <t>一</t>
    <rPh sb="0" eb="1">
      <t>イチ</t>
    </rPh>
    <phoneticPr fontId="1" />
  </si>
  <si>
    <t>一</t>
    <rPh sb="0" eb="1">
      <t>ハジメ</t>
    </rPh>
    <phoneticPr fontId="1" />
  </si>
```

　エクセル内でコピー＆ペーストした場合は、セルの値はコピー元と同じ値を持ちます。変換を行わないでメモ帳にあるテキストを貼り付けした場合は、ふりがなが登録されません。

```xml:メモ帳から貼り付け
  <si>
    <t>一</t>
    <phoneticPr fontId="1" />
  </si>
```

https://learn.microsoft.com/ja-jp/dotnet/api/documentformat.openxml.spreadsheet.phoneticproperties?view=openxml-2.8.1

# スペース
　セルに入力された文字列の前後に付けられた半角スペースは有効(preserve)になります。特に、文字列の最後にスペースが入る場合は、視認しにくいためトラブルの原因となることがあります。

```xml:space
  <si>
    <t xml:space="preserve"> abc </t>
    <phoneticPr fontId="1" />
  </si>
```

# ソート

ソートは、数字、英字、日本語の順に並び替えられます。日本語は、読みの「あいうえお順」に並び替えられます。「朝（あさ）」の読みと「朝（ちょう）」の読みでは、同じ漢字でも順番が変わっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/4e13e375-a75e-52bc-cdc7-9e6988b781d8.png)
読みがない場合は、Unicodeのコード順に並びます。読みのあり・なしが混在する場合は、読みがあるものが「あいうえお順」で最初に並び、その後に読みがないものがUnicode順に並びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/864075/c53015c0-03cf-22e5-b832-c9cec0c0bab8.png)

# コンテンツ
- [雑・Excel入門試論 - 脱VLOOKUPの思考 01 - ブック - 仕様と制限](https://qiita.com/spumoni/items/189004c01181c50a4821)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 02 - ブック - オプション](https://qiita.com/spumoni/items/75955db69cc34695de14)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 03 - ワークシート](https://qiita.com/spumoni/items/5408cae114034be528c4)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 04 - セル - 文字列型](https://qiita.com/spumoni/items/4ab1d7067418886c0582)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 05 - セル - 数値データ](https://qiita.com/spumoni/items/970b4b39a5a2185992ed)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 06 - セル - 日時データ](https://qiita.com/spumoni/items/9f270e181fbc45503759)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 07 -  リンクされたデータ型](https://qiita.com/spumoni/items/ed59d15753d992c3a630)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 08 - セル - 計算式・関数](https://qiita.com/spumoni/items/ae339c97627110e2134e)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 09 -  セル - 数値の書式設定](https://qiita.com/spumoni/items/1b3134d4b0284465976f)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 10 - セル - 日付と時刻の書式設定](https://qiita.com/spumoni/items/6eb602f69956a5e1502f)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 11 - セル - 条件付き書式](https://qiita.com/spumoni/items/04bd8e24284daef6f27a)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 12 - テーブル - テーブルの作成と入力規則](https://qiita.com/spumoni/items/f23beca01c5093c81c47)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 13 - テーブル - ソートとスライサー](https://qiita.com/spumoni/items/b66027008c2f9edb853f)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 14 - テーブル - 動的配列関数](https://qiita.com/spumoni/items/cc03e898f02b8c3017f7)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 15 - Power Query - エクセルのデータを読み込む](https://qiita.com/spumoni/items/fc38a4ae595b64af87f5)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 16 - Power Query - 変換](https://qiita.com/spumoni/items/100e0e3c6a5a59b03229)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 17 - Power Query - テーブルの結合](https://qiita.com/spumoni/items/debb9ea9b8692ca8fc8c)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 18 パワーピボット - データモデル](https://qiita.com/spumoni/items/08458978e86dc59f18ed)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 19 パワーピボット - 操作](https://qiita.com/spumoni/items/e7b3f245e87622e9bc79)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 20 パワーピボット - 日付テーブル](https://qiita.com/spumoni/items/340e0fcbc9cd10198112)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 21 DAX - コンテキストとイテレーター](https://qiita.com/spumoni/items/cddc7fa16341e20bafb8)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 22 DAX - CALCULATE](https://qiita.com/spumoni/items/e2218fece1ec01e177b0)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 23 DAX - タイムインテリジェンス](https://qiita.com/spumoni/items/6d8aeb9f80ecafb69c5a)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 24 - ダッシュボード - ピボットグラフ（Pivot Chart）](https://qiita.com/spumoni/items/ffb0d57a6272c2e5ad37)
- [雑・Excel入門試論 - 脱VLOOKUPの思考 25 - ダッシュボードの作成](https://qiita.com/spumoni/items/5e57ad587a343857e543)