[[20040930163737]] 『文字列操作で数字とアルファベットの区別』(しぇい) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『文字列操作で数字とアルファベットの区別』(しぇい)

 矢次早に質問して申し訳ありません。
 兼ねてからの疑問なのですが、文字列操作において対象をアルファベットか数字という
 くくりで探すことはできないのでしょうか?
 例えば…
	A
 1	165845A64265
 2	1425356B643598
 3	584B648534

 という表があったときに、アルファベットまでを抜き出したいような時。
 A1は165845、A2は1425356、A3は584が答えになります。
 「=LEFT(A1,FIND(  ))」の()内の空欄に入れることでアルファベットと認識してくれる
  関数やコードはないのでしょうか?
  ありそうなパターンですが過去ログで見つりませんでした。あったらごめんなさい。


 =LOOKUP(10^17,--LEFT(A1,COLUMN(A1:AZ1)))
(KAMIYA)淡白でごめん(;;


 すごいです!
 本当に長い間できないものかと思っていたので、涙ものです!
 KAMIYAさんありがとうございます。
 ところで、この式はどうなっているのでしょう?
 文字列「10^17」って何ですか?
 この「--」は何ですか?
 逆パターン(アルファベットが先にあって、数字まで)でもできますか?
 急ぎませんので、お手すきの時にご講義いただけると嬉しいです。
(しぇい)


 レスがないうちについでにもうひとつ応用編を質問してしまいます。
 このパターンで目安になるアルファベットを含めて抜き出す場合は
 どのような式になりますか?
 A1だったら、165845Aを求めるいうことです。
 アルファベットは1文字です。
 あわせてご講義お願いいたします。
(しぇい)


 >このパターンで目安になるアルファベットを含めて抜き出す場合は

 配列数式で、
 =IF(COUNT(LEFT(A1)),LEFT(A1,COUNT(-LEFT(A1,COLUMN(1:1)),)),"")
 として、Ctrl+Shift+Enterでは、どうでしょう?                   (LOOKUP)


 LOOKUPさん、すばらしいです!
 拝見して唸るばかりです・・・_/ ̄|○ il||li
 良かったら、=COUNT(-LEFT(A1,COLUMN(1:1)),)の配列数式で7が返る意味を教えていただけませんでしょうか。
 しぇいさんお邪魔してごめんなさい。m(._.)m ペコッ
 (川野鮎太郎)


  A
1 165845A64265

 =COUNT(-LEFT(A1,COLUMN(1:1)),)のCOLUMN(1:1)は、
 任意の行全体を選択し、数式バーに=COLUMN(1:1)として、Ctrl+Shift+Enterとしますと、
 各セルに1、2、3……、256と表示し、1から256の数値をメンバーとする配列が判ります。

 -LEFT(A1,COLUMN(1:1))文字列の左から1桁ずつ増やして抽出して行く文字列に-を付して、
 数値に変換できるか、調べています。英字に突合しますと、以後は数値ではなくなります。
 =COUNT(配列,)で、配列中の数値を数えて、,)で1個増やしています。         (LOOKUP)


 (・0・*)ホ,(゜0゜*)ホ--ッッ!!! 
 早速のご教示ありがとうございます。m(._.)m 
 >,)で1個増やしています
 これは以前に教えていただいた方法ですね。

 -LEFT(A1,COLUMN(1:1)) この部分が、
 F9で確認しても数式が長すぎますって怒られたもので、意味がわかりませんでした。(^_^A;
 教えていただいて、ぉお!!(゚ロ゚屮)屮 なるほどと納得できました^^
 いつもながらわかりやすい解説ありがとうございました。m(._.)m ペコッ
 ちなみに、私も7という数値を出していたのですが、まったくもってベタベタな方法でした(^_^A;
 =MATCH(TRUE,ISERR(--MID(A1,ROW(A:A),1)),0) で配列数式です。
 (T▽T)アハハ! (/-・\*) ハズカチ…
 (川野鮎太郎)

 作業に没頭していて久しぶりに開いたら、鮎太郎さんの追求のおかげで
 ますますお勉強モードになっていました。
 お答えの数式はばっちりです!ありがとうございます。<m(_ _)m>深々 
 内容については家に帰ってからゆっくり吟味いたします。
 で、文字列「10^17」って何ですか?
 で、「--」は何ですか?これ「-」ひとつだと頭に「-」がつくんですね。
(しぇい)

 計算原理は下記が参考になるかな?
[[20040917155349]] 『数字と文字列が混在したセルの計算』(ice) 
「10^17」
  「とても大きい数字」の意で使用。
  文字列はどんな数字よりも大きい、と判断される。
「--」
  =マイナスのマイナスはプラス。
  LEFT(A1,COLUMN(A1:AZ1))の部分で文字列の数字配列を
  数値として扱うためにこのような書き方をします。
  セルへ ="1" とすると文字列ですが、 =--"1" とすると数値として扱われます。
 
後のほうのお題は・・・
=LEFT(A1,MIN(IF(ISERR(-LEFT(A1,COLUMN(A1:AZ1))),COLUMN(A1:AZ1))))
としてCtrl+Shift+Enter
というのをつくってみましたが、
さきほどLOOKUPさんの数式が、
{=LEFT(A1,COUNT(-LEFT(A1,COLUMN(1:1)),))}
の部分だけでもA1空白時の処理が出来てしまっていることに気が付き、
完全に脱帽状態であります。。。
(KAMIYA)


 へぇぇぇぇぇ〜〜〜(〇o〇))))
 持ちへい20ぐらいじゃ足りないぐらいへ〜です。
 とても大きい数字って素敵ですね。
 いつでも規律に厳しいエクセルが急に人間らしくなった感じです(笑)。
 文字列の数字配列というのも感心するばかりです。
 もちろん式はみんなうまくいきました。
 本当にどんな本を読むより勉強になります。
 KAMIYAさん、話を広げてくださった鮎太郎さんも、どうもありがとう
 ございました!
 今まで詳しいと思われる人何人にも聞いて解決しなかったことが、次々
 解明し、日々目うろこの日々を過ごさせていただいております。
 まだまだ勉強不足ですんなりと応用というわけにはいきませんが、他の
 作業にも役立つことが沢山です。またよろしくお願いいたします。<m(__)m>
 (しぇい)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.