アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルにおいて、関数で
□□□□22222233333□□□□□
などと数値が入力されている場合、一番左の数値を抜き出すにはどのようにしたらいいのでしょうか?
一番右の数値を抜き出すやり方はわかったんですが、左の場合がわからなくて困ってます。。。

A 回答 (9件)

お手軽に


=INDEX(A1:Z1,MIN(IF(ISNUMBER(A1:Z1),COLUMN(A1:Z1))))
と記入して,コントロールキーとシフトキーを押しながらEnteで入力してみるなどで。
    • good
    • 0
この回答へのお礼

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

できました!
少し、配列数式を理解するのに苦しみましたが、こんなやり方があるんですね。
配列数式について勉強してみたいと思います。

お礼日時:2012/02/08 11:49

#3です。


まあ、ということであれば、同様な式、

=INDEX(A1:Z1,ROW(A1),MATCH(1,ISNUMBER(A1:Z1)*1,A1:Z1))

で、どうでしょう。
これも、配列数式です。
    • good
    • 0
この回答へのお礼

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

できました!
これで、仕事が順調に進みそうです。
ありがとうございました。もっと勉強します!

お礼日時:2012/02/08 11:55

NO6です。


A1:Z1範囲としています。
=INDEX(A1:Z1,,MIN(INDEX(IF(ISNUMBER(A1:Z1),COLUMN(A1:Z1),1000),)))
配列数式につき、入力完了時にShift+Ctrl+Enterキーを同時押下して下さい。
    • good
    • 1
この回答へのお礼

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

教えていただいたやり方を試したところできました!
追加の質問内容も間違っていたことに気づきました笑

ありがとうございました。

お礼日時:2012/02/08 11:52

一例です。


数字は半角、全角を意識せずに抽出しますが、半角のみならば数式内のASC(A1)部分を
A1にして下さい。
=MID(A1,MIN(FIND({1,2,3,4,5,6,7,8,9,0},ASC(A1)&"1234567890")),1)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
すみません、質問に不備がありました。。。

□は空白セルです。
なので、

A1 A2 A3 A4 A5 A6 A7 A8
□ □ □ 2 2 2 3 □

などと入力されている場合、空白セルを無視して、一番左の数字である2
を取得したいです。1つのセルに入力されているのは単一の数値になります。
質問の仕方が悪く、申し訳ありません。

一番右に入力されている数値の取得は
http://www.nurs.or.jp/~ppoy/access/excel/xlET031 …
を参考にしました。

お礼日時:2012/02/07 11:56

=MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&"0123456789")),1)*1


でいいです。
    • good
    • 0

あの、複雑に考えなくても中身が数字だけなら



=LEFT(TEXT(VALUE(A1),"######"),1)

で、いいんじゃ?

"#####"は十分な桁数があれば、自動的に左側は
無視されるのでオッケーだし。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
すみません、質問に不備がありました。。。

□は空白セルです。
なので、

A1 A2 A3 A4 A5 A6 A7 A8
□ □ □ 2 2 2 3 □

などと入力されている場合、空白セルを無視して、一番左の数字である2
を取得したいです。1つのセルに入力されているのは単一の数値になります。
質問の仕方が悪く、申し訳ありません。

一番右に入力されている数値の取得は
http://www.nurs.or.jp/~ppoy/access/excel/xlET031 …
を参考にしました。

お礼日時:2012/02/07 11:58

次の数式でどうでしょう。


ただし、配列数式なので、数式入力後、Ctrl+Shift+Enterとしてください。{ }がつく。
なお、20字までの文字列に対応していますが、ROW($A$1:$A$20)の部分の$20の20を変えれば、多くの文字列にも対応できるでしょう。

{=MID(A1,MATCH(TRUE,ISNUMBER(MID(A1,ROW($A$1:$A$20),1)*1),0),1)*1}
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
すみません、質問に不備がありました。。。

□は空白セルです。
なので、

A1 A2 A3 A4 A5 A6 A7 A8
□ □ □ 2 2 2 3 □

などと入力されている場合、空白セルを無視して、一番左の数字である2
を取得したいです。1つのセルに入力されているのは単一の数値になります。
質問の仕方が悪く、申し訳ありません。

一番右に入力されている数値の取得は
http://www.nurs.or.jp/~ppoy/access/excel/xlET031 …
を参考にしました。

お礼日時:2012/02/07 11:58

こんにちは!


VBAでの一例になります。
データはA1セルからありB列に表示するとします。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が出ますので
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub test() 'この行から
Dim i, k As Long
Dim str As String
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
For k = 1 To Len(Cells(i, 1))
str = Mid(Cells(i, 1), k, 1)
If IsNumeric(StrConv(str, vbNarrow)) Then
Cells(i, 2) = str
Exit For
End If
Next k
Next i
End Sub 'この行まで

※ 関数ではないので、ご希望の方法でなかったらごめんなさいね。m(_ _)m
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
すみません、質問に不備がありました。。。

□は空白セルです。
なので、

A1 A2 A3 A4 A5 A6 A7 A8
□ □ □ 2 2 2 3 □

などと入力されている場合、空白セルを無視して、一番左の数字である2
を取得したいです。1つのセルに入力されているのは単一の数値になります。
質問の仕方が悪く、申し訳ありません。

一番右に入力されている数値の取得は
http://www.nurs.or.jp/~ppoy/access/excel/xlET031 …
を参考にしました。

お礼日時:2012/02/07 11:58

多少力技になりますがA1セルにデータがあるとして次の式を入力します。



=MID(ASC(A1),MIN(IF(COUNTIF(A1,"*1*"),FIND(1,ASC(A1)),100),IF(COUNTIF(A1,"*2*"),FIND(2,ASC(A1)),100),IF(COUNTIF(A1,"*3*"),FIND(3,ASC(A1)),100),IF(COUNTIF(A1,"*4*"),FIND(4,ASC(A1)),100),IF(COUNTIF(A1,"*5*"),FIND(5,ASC(A1)),100),IF(COUNTIF(A1,"*6*"),FIND(6,ASC(A1)),100),IF(COUNTIF(A1,"*7*"),FIND(7,ASC(A1)),100),IF(COUNTIF(A1,"*8*"),FIND(8,ASC(A1)),100),IF(COUNTIF(A1,"*9*"),FIND(9,ASC(A1)),100),IF(COUNTIF(A1,"*0*"),FIND(0,ASC(A1)),100)),1)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
すみません、質問に不備がありました。。。

□は空白セルです。
なので、

A1 A2 A3 A4 A5 A6 A7 A8
□ □ □ 2 2 2 3 □

などと入力されている場合、空白セルを無視して、一番左の数字である2
を取得したいです。1つのセルに入力されているのは単一の数値になります。
質問の仕方が悪く、申し訳ありません。

一番右に入力されている数値の取得は
http://www.nurs.or.jp/~ppoy/access/excel/xlET031 …
を参考にしました。

お礼日時:2012/02/07 11:58

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A