Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10全般 : Excel 2016)
文字列・数値(書式設定)
投稿日時: 17/11/30 13:15:08
投稿者: coffy

"最初から文字列を書式設定" | "後から文字の書式設定" |     IF関数      | 答え
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
    1         |       1     | =IF(A2=B2,"同じ","違う") | 違う
 
 
                      ↓シングルクォーテーション追加
    2         |       2     | =IF(A4=B4,"同じ","違う")   | 同じ
 
初めから書式設定をしたものと、後から設定をかけたものが違う理由を知りたいのですが。
コードはどちらも同じですが、IF関数を利用するとNOT=で答えが返ってきます。
  
初心者なので、質問がわかりづらいかと思いますが、どうぞよろしくお願いいたします。

回答
投稿日時: 17/11/30 14:34:52
投稿者: sk

引用:
最初から文字列を書式設定

・あらかじめセル書式を「文字列」として設定したセルに対して
 入力されたテキストは、どのようなパターンのテキストであれ
 「文字列型のデータ」として格納される。
 
引用:
後から文字の書式設定

・セル書式を「文字列」として設定していないセルに対して
 入力されたテキストは、そのテキストが
 どのようなパターンの文字列であるかによって
 格納されるデータの型を自動的に解釈、型変換される。
 例えば「数字のみで構成されたテキスト」が入力されれば、
 ほとんどの場合「数値型のデータ」として格納される。
 
・セル書式を後から変更したからと言って、
 既に格納済みであるデータそのものや、
 そのデータ型まで変更されるわけではない。
 (値の見た目が変わるだけ)
 
引用:
シングルクォーテーション追加

・先頭にシングルクォーテーションを付加して
 入力されたテキストは、入力時点でのセル書式や
 入力されたテキストのパターンに寄らず、
 常に「文字列型のデータ」として格納される。
 (この場合、先頭の ' はデータの一部としては
  解釈されない)
 
引用:
=IF(A2=B2,"同じ","違う")

・数値型のデータとしての 1 と
 文字列型のデータとしての "1" は
 内部的には異なるデータである。
 (等価ではない)

回答
投稿日時: 17/11/30 19:47:43
投稿者: WinArrow
投稿者のウェブサイトに移動

「表示形式」は、あくまでも表示させる形式ということで、
必ずしもデータ型と同じではないと理解した方がよいです。
 
比較(含む、検索)する場合は、表示形式ではなくデータ型が使われます。
 
計算の場合は、Excel君の親切(お節介もあるかも?)で、文字列でも数値と見做されることがあります。
 
=IF(A2=B2,"同じ","違う")
答えが「違う」前提としてA2は文字列、B2が数値
 
の時
=A2-B2
では、答え=0になります。

トピックに返信