エクセルで、文字列+スペース+数字と入力されているセルから数値だけ取り出す方法を教えていただけますか?
文字列とスペースの字数は一定で、数値の桁数は6-8桁と変動します。
A列からb列のように変換したいのです。

A列          B列
PMID:_12345678    12345678
PMID:_123456     123456

宜しくお願いいたします。

A 回答 (4件)

B1に


VALUE(REPLACE(A1,1,6,""))
でよいでしょう.

数値の桁数には依存しません.
    • good
    • 5
この回答へのお礼

・・・素晴らしい・・・!!
数値を取り出すことばかり考えていましたが、
先頭の文字列を""で置き換えるなんて発想はまったく思いもよりませんでした。
素早い回答有り難うございました。
最もスマートな方法を教えて下さったxkuramaeさんに20pt差し上げたいと思います。

お礼日時:2002/01/17 14:02

はじめまして



B1にMID(A1,6,14)とすればいいと思います
B2~最終行までは数式コピー
    • good
    • 7
この回答へのお礼

RIGHT関数で右から取り出すことばかり考えていたので、桁数が変わる場合に対応できず悩んでいました。素早いご回答有り難うございました。

お礼日時:2002/01/17 14:14

こんいちは!



数式での例

文字列が5文字+スペース 固定であれば
 =SUBSTITUTE(A1,LEFT(A1,6),)*1

文字列文字数が固定でない場合は
 =SUBSTITUTE(A1,LEFT(A1,FIND(" ",A1)),)*1
とか
 =RIGHT(A1,LEN(A1)-FIND(" ",A1))*1

手作業なら
・A列データ範囲を選択
・メニューの データ 区切り位置
  カンマやタブ・・・・ にチェック 次へ
  スペースをチェック
 完了

で試してみて下さい!
    • good
    • 5
この回答へのお礼

素早い回答、有り難うございます!
文字列文字数が固定でない場合についても教えていただき、他の例でも活用できそうです。助かりました!

お礼日時:2002/01/17 14:09

a1にPMID:_12345678    


b1に=VALUE(MID(A1,7,LEN(A1)-6))
と指定した下さい。
関数の説明
value 括弧の中の文字を数字に変換します
len   括弧の中の文字の長さを求めます
mid   mid(a,b,c)
aの所からb文字目からc文字分取出します

以上ですがんばってください
なにかあれば補足してください
    • good
    • 1
この回答へのお礼

RIGHT関数で右から数値を取り出すことしか思いつかず悩んでいました。MID関数にLENを組み合わせて、総文字数から6文字引いた数だけ取り出すなんて方法があったのですね。・・・まだまだ不勉強でした。素早いご回答有り難うございました!

お礼日時:2002/01/17 14:17

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q数字がメインのフォントの一覧表示

使用OSはWindows7 Ultimateです。

フォント管理に「SAKURA 2.66」を使っているのですが、このソフトはフォントの一覧を表示させるとフォントの名前が其のフォントの形で表示されるようになっています。

ゴシックや古印体などのフォントではそれでいいのですが、数字の形が一番肝心なフォント、、例えば MOSuujiHD-JFn.otf などのMOSuujiシリーズはアルファベットなし・日本語はどれも同形で、数字の形だけが違うようです。

このようなフォントではフォント名で一覧を作られても意味がありません。

フォントによっては数字の形の違いを一覧にしてくれるフォント管理ソフトをご存じの方、教えてください。
何卒よろしくお願い致します。

Aベストアンサー

私も『フォントインストーラー SAKURA』を利用しています。
数字フォントであってもプレビュー画面に数字を表示できますよ。
デフォルトではフォント名になっていますが、プレビュー画面上のプルダウンメニューから[0123456789]を選択すると表示されます。
また、任意の文字を入力後[Enter]キーを押すと、任意の文字で表示できます。

QエクセルでB列の数値がA列(A1:A10)の範囲に存在するかどうかを知りたい

こんばんは。
エクセルでこのようなことができるのかどうか分からないので、教えてください。

B列の数値がA列(A1:A10)の範囲に含まれる数値なら○、含まれない数値なら×と、C列に表示したいのですが、エクセルでそのようなことはできるのでしょうか。
できるのであれば方法を教えていただけますでしょうか。
よろしくお願いいたします。

<<最終的な結果は以下のように表示したいです>>

  A B C

1 12 19 ○

2 15 20 ○

3 19 28 ○

4 20 30 ×

5 23 34 ○

6 28 35 ×

7 32 38 ×

8 34 39 ○

9 39

10 40

Aベストアンサー

セル C1 に式 =IF(COUNTIF(A:A,B1),"○","×") を入力して、此れを下方にズズーッと複写

Qスーパーのチラシなどで使われている数字フォント

スーパーのチラシなどで使われている数字フォントで数字が1/3ほど重なっているフォントをよくみかけます。
白フチがあり、重なっている部分はフチにより区別がしやすくなっているフォントです。
あの数字フォントはなんという名前でしょうか?
単純に数字に白フチをつけ、文字幅を狭めただけでは白フチが一番外側だけになり、うまくいきませんでした。
文字を個別にうち、白フチを付け、重ねれば作成できるのですが、手間がかかりすぎ断念してしまいました。
数字フォントの名称、もしくは『こうすればできる』などのアドバイスがありましたらよろしくお願い致します。

Aベストアンサー

貴方が使ってるソフトが判りません??
数字フォントの名称←これは判りません?
『こうすればできる』←イラストレーターで作るなら。
最初は面倒ですが、サンプルを作ってからだとそこそこ早く出来ます。
文字ツールで0~9までの数字を書きます(仮に、特太ゴシック、大きさ50mm、文字間隔200))>黒矢印(選択ツール)をクリック>右クリック>アウトライン>塗り赤・線白・線幅20pt>アピアランスパレットの中の塗りをクリック&ドラッグで線の上に移動>長方形ツールで数字の右に四角を描きます(高さ45mm。幅30mm、塗りなし、線なし)>画面(表示)>アウトライン>四角をクリックして、ShiftとAltを押したまま直右に移動して離す>Ctrlを押したままでDを8回押す>全部を選択>整列パレットの垂直方向をクリック>数字だけを選択>右クリック>グループ解除>0と四角の一つを黒矢印で選択>そのまま0だけをクリック>整列パレットの水平方向をクリック>右クリック>グループ>これを0~9まで繰り返して、数字の周りに四角の有る数字を10個作る>画面(表示)>プレビュー>0を上にして、縦方向に0~9を並べる>全部を選択>0だけをクリック>整列パレットの水平方向をクリック>整列パレットの等間隔の垂直方向をクリック>クリック&ドラッグで全体をShiftとAltを押したまま直右に移動して離す>Ctrlを押したままでDを必要な桁数に成るまで押す(仮に3回)>一旦、保存>仮に値段を、23405とすると、一番左の行から各行の数字を一つずつ23405と選択>クリック&ドラッグでAltを押したまま別の場所に移動して離す>アクションパレットの右上の三角をクリック>新規アクション>名前を入れる>記録>整列パレットの等間隔の数値をー10mmにする>そのまま2だけをクリック>整列パレットの垂直方向をクリック>等間隔の水平方向をクリック>アクションパレットの下の黒四角をクリック>これで重なった、23405が出来ます。
別の数字を作る場合。
同じ様に左から右に数字を選択、仮に、66280>クリック&ドラッグでAltを押したまま別の場所に移動して離す>そのまま一番左の数字の6だけをクリック>アクションパレットの一番上の名前をクリック(反転する)>アクションパレットの下の右向き三角をクリック、で23405と同じ様に66280が重なります。
値段の中に1が入る場合は後で微調整するか、1の周りの四角の幅を最初に作った段階で狭くしてから数字をコピーします。

貴方が使ってるソフトが判りません??
数字フォントの名称←これは判りません?
『こうすればできる』←イラストレーターで作るなら。
最初は面倒ですが、サンプルを作ってからだとそこそこ早く出来ます。
文字ツールで0~9までの数字を書きます(仮に、特太ゴシック、大きさ50mm、文字間隔200))>黒矢印(選択ツール)をクリック>右クリック>アウトライン>塗り赤・線白・線幅20pt>アピアランスパレットの中の塗りをクリック&ドラッグで線の上に移動>長方形ツールで数字の右に四角を描き...続きを読む

Q作業列なしで各行のA列とB列の数値の小さい方に、C列の数値をかけた値の和を求めたい

エクセルで、A列B列C列の1行目から100行目まで、それぞれ数値が入っているとします。
各行のA列とB列の数値の小さい方に、C列の数値をかけた値の和を求めたいです。
D列を作業列にするなら、D1に「=MIN(A1,B1)*C1」として、これをD100までコピーして、「=SUM(D1:D100)」で得られる数値を求めたいのですが、元となるデータが頻繁に追加されることも有り、作業列の追加が難しい状況です。
SUMPRODUCT関数を使おうにも、「=SUMPRODUCT(MIN(A1:A100,B1:B100),C1:C100)」では、A1からB100までの200セルのうちの最小値に、C1からC100の数値をそれぞれかけた値の和が返されてしまいます。
なにかよい方法があれば、お知恵を拝借できないでしょうか。

Aベストアンサー

こんにちは!

範囲を最初から多目にしておいてはダメですか?
SUMPRODUCT関数はどこかの列が空白の場合は「0」とみなされ合計しても結果に変化はないはずですので・・・

どうしても作業列を使用したくない場合の一例です。
表示したいセルに
=SUMPRODUCT(IF(A1:A1000<=B1:B1000,A1:A1000,B1:B1000),C1:C1000)

配列数式になりますので、Ctrl+Shift+Enterで確定!
この画面からコピー&ペーストする場合は上記数式をドラッグ&コピー! → 表示したいセルを選択 → 数式バー内に貼り付け  → そのまま(編集可能なまま)
Ctrl+Shiftキーを押しながらEnterキーで確定します。
数式の前後に{ }マークが入り配列数式になります。

※ SUMPRODUCT関数自体が配列数式になりますが、
配列数式内に配列数式を入れた感じになります。m(_ _)m

Q小数点以下の数字だけ小さいフォントで表示

教えて下さい
エクセルで少数点以下の桁、2まで表示するのですが
小数点以下の数字だけフォントを小さくして、小数点以下の数字だと言う事を分かりやすくしたいのですが方法はございますか?

例:  100.11を入力すると11だけ自動でフォントが小さくなる事です

どうぞよろしくお願い致します

Aベストアンサー

エクセルのセルのデータは数値と文字列に大別され、書式などの適用に差があります。
文字列であればその文字列の1部だけフォント書式を変えることが出来ます(VBAではCharactersを使う。
http://www.big.or.jp/~seto/vbaref/vbaref3.htm
手作業では、数式バー部で一部の文字を範囲指定して書式設定するが、質問者はやったことがあるかな)
ーー
しかし数値では、それをやると一瞬それが実現しているらしく見えるが、均一フォントサイズにもどる。
推定では、エクセルは
キーボード上では実現ー>チェックすると内容は数値ばかりー>数値に強制変化ー>数値は均一フォント(という決まり)
という過程で、元に戻るのだと思います。
ーー
マイクロソフトがその気になれば出来ないことはないと思うが、素の必要性を重視してないー採用してないということだと思います。
(そういう他の事項は、どちらかというと初心者から、沢山質問が出ます)今までの質問でも、ワードの下つき文字の質問はあっても、本件のようなのはないと記憶する。
ーーー
だから文字列で考えるか、なんだが、そのままでは計算がやりづらいので候補外でしょう。
あきらめてください。
ーー
私のお遊び
B1=11,123
B1の書式 ユーザー定義 #,###
C1に=MOD(B1,1)
C1のフィントサイズ8
C1の書式ーセルー配置ー水平は左づめ、縦は下詰め
枠線が邪魔だが。

エクセルのセルのデータは数値と文字列に大別され、書式などの適用に差があります。
文字列であればその文字列の1部だけフォント書式を変えることが出来ます(VBAではCharactersを使う。
http://www.big.or.jp/~seto/vbaref/vbaref3.htm
手作業では、数式バー部で一部の文字を範囲指定して書式設定するが、質問者はやったことがあるかな)
ーー
しかし数値では、それをやると一瞬それが実現しているらしく見えるが、均一フォントサイズにもどる。
推定では、エクセルは
キーボード上では実現ー>チェック...続きを読む

QExcel2013 VBA A列とB列の文字をA列とB列とC列に移動させる方法

A列とB列に文字が入っているのですが、下記のようにA列とB列とC列に文字を移動させたいです。
(A列の数字は必ず奇数のA列に入っています。)
VBAのコードを教えて下さい。

例えば
A1 1  B1 cat
A2 空白 B2 猫
A3 空白 B3 dog
A4 空白 B4 犬
A5 2  B5 whale
A6 空白 B6 クジラ
A7 3  B7 rabbit
A8 空白 B8 ウサギ

とデータがある場合

A1 1  B1 cat  C1 猫
A2 空白 B2 dog  C2 犬
A3 2  B3 whale  C3 クジラ
A4 3  B4 rabbit C4 ウサギ

としたいです。

実際、データは、A5196まであります。

Aベストアンサー

No.1です。

>実際、データは、A5196まであります。

前回のコードは一つずつカット&ペーストしていますので
かなりの時間を要すると思います。
↓のコードに変更してみてください。

Sub Sample2()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "B").End(xlUp).Row
Application.ScreenUpdating = False
With Range(Cells(1, "C"), Cells(lastRow, "C"))
.Formula = "=IF(MOD(ROW(),2)=1,B2,"""")"
.Value = .Value
.SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End With
Application.ScreenUpdating = True
MsgBox "完了"
End Sub

少しは短縮できると思います。m(_ _)m

No.1です。

>実際、データは、A5196まであります。

前回のコードは一つずつカット&ペーストしていますので
かなりの時間を要すると思います。
↓のコードに変更してみてください。

Sub Sample2()
Dim lastRow As Long
lastRow = Cells(Rows.Count, "B").End(xlUp).Row
Application.ScreenUpdating = False
With Range(Cells(1, "C"), Cells(lastRow, "C"))
.Formula = "=IF(MOD(ROW(),2)=1,B2,"""")"
.Value = .Value
.SpecialCells(xlCellTypeB...続きを読む

Q通販のオーダーシートに使用される数字フォント

カウネットやセシールなどの通販のオーダーシートの上のほうに記入見本として書かれている数字のフォント名をご存知でしたら教えてください。私はマイクロソフトオフィスを使用しています。

例えば、1は頭がとがっていないただの棒。こんな感じ→|。
4は三角形ではなく、頭が離れていて、右と左の縦線が平行。
(分かりにくい説明でごめんなさい。)

他の質問で検索をしたところ、OCR-AでもBでもなく、Cells Fontというフォントに近いことがわかったのですが、Cells Fontというのは、セルズ社が独自で作成したフォントのようで、セルズ社の会計ソフトなどを持っていないとダウンロードできないようです。オフィスに搭載されるメジャーなフォント、もしくはフリーダウンロードできるフォントでCells Fontに似た数字が使用できるフォントはあるのでしょうか?

Aベストアンサー

 お探しなのは「OCR-HN」というフォントと思われます。
 フォント名で検索すれば購入できるところが見つかると思いますが,手ごろなところとしてはリコーが「HG OCR-HN」(2,500 円)として扱っています。
  http://font.ricoh.co.jp/purchase/font/
上掲ページのいちばん下に項目と見本へのリンクが掲載されていますので,ご覧の上,購入をご検討なさるとよいでしょう。

QエクセルでA列の数値にB列以降の列の数値を乗じて各列の最終行に合計を出したい

エクセルで集計をしたいのです。
うまく説明できませんが教えてください。
列数が100列以上ある集計表です

A列の1~20行の固定した数値にB列~100列以上の1~20行の各列の数値を乗じてそれぞれの列の合計をそれぞれの列の21行目に出したいのですがどうしたらいいか教えてください。

Aベストアンサー

B21に
=SUMPRODUCT($A$1:$A$20,B1:B20)
とします。後は横にコピーします。

Qリストの数字のフォントサイズを変えたい

リストを使ったときに頭につく数字のフォントサイズを小さくすることは
できるのでしょうか?
文章のフォントは<li>の後にフォントタグをつければ小さくなるのですが
リストの数字が小さく出来ません。
これを小さくすることは可能でしょうか?
<ol>
<li>
<li>
</ol>

Aベストアンサー

スタイルシートを使えばできます。
たとえば、

<ol style="font-size:80%;">
<li>サンプル</li>
</ol>

のように記述すると元のサイズの 80% になります。

QA列とB列の重複を抽出したいのですがA列とB列の値は一部だけ同じ文字です。ご教示お願いします。

エクセル初心者です。重複を見つけるのが仕事です。いろいろやってみたのですがうまくできません。
お知恵をお貸しください。

A列には企業名が入力されています。
B列にも企業名が入力されていますが全く同じ文字ではないのです。

たとえばこういうことです。
A1 (有)雪見酒      B1  雪見
A2 株式会社豪雪地帯   B2 (株)豪雪地帯
A3 ゆきかき本舗     B3 (有)ゆきかき本舗

A列にある企業名とB列にある企業名が同じであればセルを塗りつぶすか○を表示させるように
したいのです。
重複を見つけるのが目的なので、ほかの方法でもかまいません。
すみません、A列のセルとB列のセルが全く同じ名前ならば重複が見つけられたのですが
ここから先がどうしてもわからないのです。。。
申し訳ありませんがどうか教えてください。。。

Aベストアンサー

No4です。以下のマクロを標準モジュールへ登録してください。
--------------------------------------------------
Option Explicit
Public Sub 重複チェック()
Dim maxrow1 As Long
Dim maxrow2 As Long
Dim row1 As Long
Dim row2 As Long
Dim nameT1() As String
Dim nameT2() As String
Dim t1, t2 As Variant
t1 = Time
maxrow1 = Cells(Rows.Count, "A").End(xlUp).row '最大行取得
maxrow2 = Cells(Rows.Count, "B").End(xlUp).row '最大行取得
ReDim nameT1(maxrow1)
ReDim nameT2(maxrow2)
Range("C1:" & "D" & maxrow2).Value = ""
Call makeTable(nameT1, "A", maxrow1)
Call makeTable(nameT2, "B", maxrow2)
For row1 = 1 To maxrow1
For row2 = 1 To maxrow2
If Cells(row2, "C") = "" Then
If Mymatch(nameT1(row1), nameT2(row2)) = True Then
Cells(row2, "C").Value = "○"
Cells(row2, "D").Value = row1
End If
End If
Next
Next
t2 = Time
MsgBox ("チェック完了 処理時間=" & Minute(t2 - t1) & "分" & Second(t2 - t1) & "秒")
End Sub
'余分な文字を削除した結果をテーブルに格納する
Private Sub makeTable(ByRef nameT() As String, ByVal col As String, ByVal maxrow As Long)
Dim row As Long
Dim ary As Variant
Dim name As String
Dim i As Long
ary = Array("㈱", "(株)", "株式", "(有)", "有限", "会社")
For row = 1 To maxrow
name = Cells(row, col).Value
For i = 0 To UBound(ary)
name = Replace(name, ary(i), "")
Next
nameT(row) = name
Next
End Sub
'企業名が一致かどうか判定する
Private Function Mymatch(ByVal name1 As String, ByVal name2 As String) As Boolean
Mymatch = False
Dim pos As Variant
pos = InStr(1, name1, name2, vbTextCompare)
If pos > 0 Then Mymatch = True
End Function
-----------------------------------------------------
一致の精度が悪ければその旨補足してください。
(一致すべきものが一致しない、一致してはいけないものが一致している)
100%解決できる保証はありませんが、多少のチューニングは行います。

No4です。以下のマクロを標準モジュールへ登録してください。
--------------------------------------------------
Option Explicit
Public Sub 重複チェック()
Dim maxrow1 As Long
Dim maxrow2 As Long
Dim row1 As Long
Dim row2 As Long
Dim nameT1() As String
Dim nameT2() As String
Dim t1, t2 As Variant
t1 = Time
maxrow1 = Cells(Rows.Count, "A").End(xlUp).row '最大行取得
maxrow2 = Cells(Rows.Count, "B").End(xlUp).row '最大行取得
ReDim ...続きを読む


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

人気Q&Aランキング

おすすめ情報