AE87361-DS
AF2383-32
AF23444
AF2383DE

のような製品番号があります。

Excelの式等を用いて型番号とサフィックスの部分を列として分けたいと思っています。

例)
 製品番号   型番号   サフィックス
AE87361-DS   87361   -DS
AF2383-32    2383    -32
AF23444      23444   
AF2383DE      2383   DE

製品番号は、先頭に2桁の文字、型番号、末尾にサフィックス(付いてたり/付いていなかったり)、となっています。
型番号とサフィックスは桁数は個々に違います
またサフィックスは、"-"が付いたり付いていなかったりもあります。


find、len、mid などの関数をうまく組み合わせて、何とかならないかと思っているのですが、良いアイデアが思い浮かびません。

何か良い方法ありますでしょうか?

宜しくお願い致します。

このQ&Aに関連する最新のQ&A

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

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

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

QRGB値の3っつの数字に付く単位は?

 よろしくお願いします。
色を表現する方法の一つににRGB値がありますが、
例えば 255-100-20といった3つの数字の組み合わせですが、この数字にはどんな単位が付くのですか?
単位が無いことは無いと思うのですが、RGB値の個々の数字に単位が付いているのを見たことが有りません。省略しているのでしょうか?
 例えば先にあげたRGB値の255の後ろにはどんな単位が
付くのですか?
 ※ちなみRGBが光の三原色のことはわかります。
また数値が大きいほどそれに対応する色がその色に含まれている量が多い事になるのは知っております。

Aベストアンサー

再び失礼します。#1です。
補足します。

階調は、人が見たときの明るさが視覚的に概ね等間隔になるように刻んだものです。

何が言いたいかといいますと、

実際の明るさというか光の強度は等間隔でありません。

ですから、例えば、3階調と4階調との間の光量差と、200階調と201階調との間の光量差は、違います。(前者のほうが光量が小さいです。)
ということで、100階調と200階調では、人間が見た目の明るさでは2倍ぐらいになりますけども、光の実際の量は2倍どころではなく、もっと大きい差になります。

では、その刻みがどういう規則に則っているかというと、これがまた確固たる規則は規定されていなくて、例えば液晶ディスプレイですと、階調電源をいじることにより「ガンマ(γ)」という値を自在に変えられるようになっています。

以上、長くなりましたが
階調の値と言うのは物理量ではなくて、ある人間がある条件で決めた勝手な数値ということです。

QExcel VBA 文字列分割の方法で

EXCEL および WORD のVBAです。
2003 および 2010でやっています。

たとえば文字列で以下のようなものがあったとき、

12,6,"abcde","(3,4)","efg""h""ijk",3

このとき、文字列をカンマ(,)で分割して

  12
  6
  "abcde"
  "(3,4)"
  "efg""h""ijk"   (あるいは efg"h"ijk)
  3

のようにして抽出したいのですが、どのような方法があるでしょうか。

たとえば、

     mid(文字列,i,1)

のようにiの値を文字列の長さ分ループさせて、1文字ずつ自力で
文字列の範囲や""などを解釈して分割するしかないのでしょうか。
それともスマートな方法があるのでしょうか。

どなたか、よろしくご教授ください。

Aベストアンサー

こんばんは!

単純にカンマの「区切り位置」で処理すると
>"(3,4)"

"(3 と 4)" に区切られてしまいますので、一例です。
A1セルからデータがあるとします。

Sub Sample1()
Dim i As Long, j As Long, k As Long, myArry
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
If InStr(Cells(i, "A"), ",") > 0 Then
myArry = Split(Cells(i, "A"), ",")
For k = 0 To UBound(myArry)
Cells(i, k + 2) = myArry(k)
Next k
For j = UBound(myArry) + 2 To 2 Step -1
If InStr(Cells(i, j), ")") > 0 Then
k = j
Do Until InStr(Cells(i, k), "(") > 0
Cells(i, k - 1) = Cells(i, k - 1) & "," & Cells(i, k)
Cells(i, k).Delete shift:=xlToLeft
k = k - 1
Loop
j = k
End If
Next j
End If
Next i
End Sub

こんな感じではどうでしょうか?m(_ _)m

こんばんは!

単純にカンマの「区切り位置」で処理すると
>"(3,4)"

"(3 と 4)" に区切られてしまいますので、一例です。
A1セルからデータがあるとします。

Sub Sample1()
Dim i As Long, j As Long, k As Long, myArry
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
If InStr(Cells(i, "A"), ",") > 0 Then
myArry = Split(Cells(i, "A"), ",")
For k = 0 To UBound(myArry)
Cells(i, k + 2) = myArry(k)
Next k
...続きを読む

Q数字だけを入れれば良かったのに単位まで入れてしまい、困っています。

本当は半角で数字だけを入れないといけないのに「1冊」「2頁」などのようにひとつのセルに数字と単位を一緒に入れてしまいました。これらを数字だけにできないでしょうか?「1冊」を「1」とする方法は無いでしょうか?しかも数字を半角で入れないといけないに全角で入れてしまいました。なんとか短時間で変換する方法がないでしょうか?今からやり直しても時間が間に合いそうに無いので、少しでも早くできる方法を教えて下さい。よろしくお願いいたします。

Aベストアンサー

Ctrl+Hで、検索する文字列に「冊」を入力し、置換後の文字列には何も入力せずに全置換すれば大丈夫だと思います。
試してみましたが、全角の数字も自動的に半角になってくれました。
但し、セルの書式は標準になっている必要があります。

QEXCELで文字列の分割方法を教えてください。

お世話になります。EXCELにおいて、A1のセルに縦横の長さを1234×5678、321×12.3、等の形式で入力してあります。桁数及び小数点の有る無し様々です。
これを、面積計算のために、B1に縦の数値のみ、C1に横の数値のみを分割させたいのですが、ご教示お願いします。

Aベストアンサー

セパレータがXで統一されている事を想定し、次の方法は如何でしょうか。

対象範囲を選択→データ→区切り位置→カンマやタブ・・・を選択し次へ→区切り文字をその他を選択してxを入力し、完了。

Q校閲お願いします。 長さ、重さの単位変換です 数字に誤りがないか確認してください お願いします 左

校閲お願いします。
長さ、重さの単位変換です
数字に誤りがないか確認してください
お願いします

左下は関係ありません

Aベストアンサー

重量で、「1分」が正式に単位として用いられていたかどうか知りませんが、1分 = 1/10 匁 とすると
 1分 = 0.375 g = 0.000378 kg
です。kg の数値が違っています。同様に
 1匁 = 3.75 g = 0.00378 kg

 尺貫法の「375 g 」の単位が何なのか読めませんが、あまり聞いたことがないような。

 あとは、目的が不明ですが、ヤードポンド法の重量「1ポンド」には
 1 lb = 453.59237 g = 0.45359237 kg
と kg を追加した方がよいと思います。

 それから、ヤードポンド法の ton は非常に紛らわしいので、何らかの「英トン」「米トン」「メートル法のトン」を区別する表記が必要かと思います。ここに書かれているのは「英トン」のようですが。
 「1 ship」と書かれているのが「米トン」のようですが、「ship」という単位表記は見たことがありません。

QExcelで任意の文字列を半角スペースで分割

一つのセルに複数の内容が半角スペースで区切られて記載されているデータがあります。
これを半角スペースで分割することは可能でしょうか?

例:A列に
01 22 3 444 5555 6 77 888 999
111 222 333
11111 2 33 44 5555

これをB~J列に
B C D E F G H I J
01 22 3 444 5555 6 77 888 999
111 222 333
11111 2 33 44 5555
という様に自動的に分割・入力させたいのですが可能でしょうか?
※添付イメージを参照ください。

A列の様な形式のデータを日常的に分割する必要があり、現在は[データ>区切り位置]で手動入力を行っているのですが手間がかかる上ミスをしてしまうこともありなんとか自動化したいのです。

項目数・文字数ともデータによりバラバラなため、単にfind関数やmid関数などを使っても上手く行かず、
アイデアをいただけますと助かります。何卒よろしくお願い致します。

※実際の環境では「BS列に記載の内容をBT列以下に入力」「データの内容は【aaa.jpg bb_1.gif …】の様な画像ファイル名」となりますが質問ではシンプルにさせていただきました。

一つのセルに複数の内容が半角スペースで区切られて記載されているデータがあります。
これを半角スペースで分割することは可能でしょうか?

例:A列に
01 22 3 444 5555 6 77 888 999
111 222 333
11111 2 33 44 5555

これをB~J列に
B C D E F G H I J
01 22 3 444 5555 6 77 888 999
111 222 333
11111 2 33 44 5555
という様に自動的に分割・入力させたいのですが可能でしょうか?
※添付イメージを参照ください。

A列の様な形式のデータを日常的に分割する必要があり、現在は[データ>区切り位置]で手動入力...続きを読む

Aベストアンサー

A列のセルをB列以降にスペースを区切り位置として分割したいなら、区切り位置の機能でウィザードの最後で表示先のセルをたとえばB1セルのようにB列のセルを指定すれば簡便に分割処理することができます(繰り返し行う操作なら、この操作をマクロに記録すればボタンをクリックするだけで処理可能です)

どうしても関数で実行したいなら、以下のような関数をB1セルに入力して右方向及び下方向にオートフィルコピーすることになります。

=TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",500)),500*COLUMN(A:A)-499,500))

QExcelの数字とその単位のセルの連携移動について

「Excelのセルの数字の移動について教えてください」と下記の質問をさせて頂き、

Excel 2007のセルA1、B1、C1において、
(1)A1に数字が有ればB1に数字が有る無しに関係なく、C1にA1の数字が設定される。
(2)A1に数字がなくてB1に数字が有れば、C1にB1の数字が設定される。
(3)A1に数字がなくてB1にも数字がない場合は、C1は空欄とする。
ご存知の方はぜひ教えてください。
よろしくお願いいたします。

下記のご回答を頂き    ・・・           =IF(A1&B1="","",IF(A1="",B1,A1))
は「ベストアンサー」にさせて頂きましたが、
A1にはその単位X1が・・・B1にはその単位Y1があり、
C1にA1の数字が設定された場合はD1にX1が設定され、
C1にB1の数字が設定された場合はD1にY1が設定され
C1が空欄の場合はD1は空欄となる方法は如何でしょうか。
ご存知の方はぜひ教えてください。お待ちしております。よろしくお願いいたします。

Aベストアンサー

D1に以下の数式を入力してください。
=IF(OR(C1="",NOT(OR(C1=A1,C1=B1))),"",IF(C1=A1,X1,Y1))

QExcel マクロ VBA セル内で改行された文字列の分割

はじめまして。
ExcelのVBA初心者で、ちょっと困っています。

(例)
(1) セルA1に以下のような改行された文字列が入力されています。
【セルA1】
a
aa
aaa
b
bb
bbb

(2) セルA1内の文字列を3行毎に分割し、セルA2以降に表示させたい。
【セルA2】
a
aa
aaa
【セルA3】
b
bb
bbb

※ 今回の例ではセルA1に6行しかありませんが、実際に行数は決まっていません。

そこで以下のようなVBAを見よう見まねで作り、1行毎の分割はうまくいったのですが、『3行毎に分割』ができません。

Sub 分割()
Dim A, B, C
A = Split(Range("A1"), Chr(10))
B = 0
For Each C In A
B = B + 1
Range("A2").Offset(B - 1, 0).Value = C
Next
End Sub

ご教授いただけると助かります。
よろしくお願い致します。

Aベストアンサー

Sub 分割()
Dim A, B, C, E
A = Split(Range("A1"), Chr(10))
B = 1
E = 1
For Each C In A
If E = 1 Then
Range("A2").Offset(B - 1, 0).Value = C
Else
Range("A2").Offset(B - 1, 0).Value = _
Range("A2").Offset(B - 1, 0).Value & Chr(10) & C
End If
If E = 3 Then
B = B + 1
E = 0
End If
E = E + 1
Next
End Sub

でどうでしょう。

Q数字の単位を何万と表したいのですが。

同じ列にある数字を自動的に任意の単位で表したいのですが。
 例  11,000 20,000 125,000これらの数字がそれぞれ11万 2万 12.5万と表示させたいのですが、どうすれば良いのでしょうか?
すみませんが、どなたか教えて貰えないでしょうか。よろしくお願いします。 

Aベストアンサー

エクセルなら
=A1/10000 & "万"
でいいんじゃないですか?

QExcelで曜日・数字が含まれた文字列を曜日別に分割したいです

Excel関数で悩んでいます。
ひとつのセルに曜日と数字が入っていた場合に
数字別に曜日を分割する方法はあるでしょうか。

例)
             月  火  水  木  金  土  日
月:500、水:800     500     800
月火:700、木:500    700  700 500
月:500、火水木金:700  500  700 700 700 700

上記のようにです。
条件のセルはひとつです。月~日は別セルです。(内容は数字になる)
MINとかLENと使って数字を抜くことはできても複数の条件に対しての
数字がどうしても読み取れません。
よろしくお願いいたします。

  

Aベストアンサー

ちょっと長くなりますが、数字桁可変対応です。
=IF(ISERROR(FIND(B$1,$A2,1)),"",REPLACE(MID($A2,FIND(":",$A2,FIND(B$1,$A2,1))+1,LEN($A2)),FIND("、",MID($A2&"、",FIND(":",$A2,FIND(B$1,$A2,1))+1,LEN($A2)),1),LEN($A2),"")*1)


人気Q&Aランキング