電子書籍の厳選無料作品が豊富!

よわい70歳弱のもうろくジジーです
教えてください
郵便番号付き住所とついてない住所の列から郵便番号を取りだす式を調べているうちに次のような式が見つかりました。

=IF(ISNUMBER(LEFT(A1,1)*1),LEFT(A1,8),"")

このうち、
ISNUMBER(LEFT(A1,1)*1)の意味を教えてください。
ISNUMBER関数は、対象の文字列が数値の場合にTRUEを返し、それ以外の時はFALSEを返すと言うことまではわかったのですが
左に数値?(郵便番号は数値か?)を含むセルから数値を判定する時に 引数として「LEFT(A1,1)*1」すなわち「A1セルの左から1文字」に「1」を乗じると「TRUE」を返し、乗じない場合「FALSE」を返すのかを教えてください。
説明不十分の場合補足しますよろしく御願いします

A 回答 (4件)

「A1の左から1文字に1をかけてみて、それが数値であればA1の左から8文字を表示し、そうでないなら何も表示しない。

」のうち、「それが数値であれば」にあたると思います。
A1セルの中身が数値であるかそうでないかの判定だと思います。

この回答への補足

早速の回答ありがとうございます。

申しわけありません質問の説明が悪く また、年老いた頭で回転が遅いのかもしれませんが よろしければ教えてください

「それが数値であれば」ということは、全体の構成からわかったのですが
住所と同じセルに入力された「郵便番号100-0013」は、
そもそも文字列だとおもうのですが「ISNUMBER関数」は、
文字列として入力された数字を数値らしきものとして?
判定し選択できるということですかね?
数値らしきものを数値に変換するために
「1」をかけるということでよろしいのですかね

しつこくお尋ねして申しわけありませんが頭の回転の鈍い年寄に教えてください。よろしく御願いします。

補足日時:2008/12/01 08:31
    • good
    • 0

> エクセルは、数値らしきものは数値と判定できる


> 機能があるのですかね?

ビンゴです。入力した時と四則演算した時に、数値と見なせそうな
ものは問答無用で数値にします。このおかげでvalue(left(A1,1))と
するかわりにleft(A1,1)*1で済みますし、時間の計算でもtimevalue
関数を使わずに済ませたりします。一方で、住所録に番地だけの列
を作るって失敗をやらかした人たちは、Excelに取り込んだとたんに
1-2-3が2001年2月3日と表示され日付シリアル値に変換されて泣くん
です。
    • good
    • 0
この回答へのお礼

皆さん回答ありがとうございます。

年寄りも皆様の親切な説明でようやく理解できました。
便利な機能であるとともにおせっかいな機能でもあるのですね

今後ともよろしく ご指導ください。

お礼日時:2008/12/01 10:34

数値に1を乗じると、そのままの数値ですが、


文字列に1を乗じると、エラー(#VALUE!)が返されます。

それを利用して、ISNUMBER(LEFT(A1,1)*1) で、TRUE と FALSE を判定しています。

この回答への補足

年寄りの質問に回答していただきありがとうございます。

もうすこし教えてください。

「あ」(文字列)に「1」をかけるとエラー(#VALUE!)が返されますが
「OO1」文字列の「1」をかけるとエラーとならずに数値の「1」となります。

>数値に1を乗じると、そのままの数値ですが、

エクセルは、数値らしきものは数値と判定できる機能があるのですかね?

補足日時:2008/12/01 09:07
    • good
    • 0

>数値らしきものを数値に変換するために


>「1」をかけるということでよろしいのですかね
良いです。
数字を数値に変換するために1を掛けている
100-0013の場合、=LEFT(A1,1) で ="1" となります
="1"*1 で =1 となります。
=VALUE("1") や ="1"+0 でも一緒ですね。

#ヘルプのどこかには書いてあるのですが・・・
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!