
初めての書き込みます。
エクセル初心者でいろいろ調べましたが、応用力がなく行き詰まってしまいました。
詳しい方お力貸してください。
A1のセルに以下のように、ずらーっと入っているとします。
こんにちは 品番:AAAAAA おはよう 原産国:インドネシア さようなら 品番:BBBBBB おはよう 原産国:カンボジア・・・・・・・・・・・・・・・・・
例えば、ここから、品番から始まる10桁と原産国から始まる10桁を抜き出したい場合
=LEFT(RIGHT($A$1,(LEN($A$1)+1)-FIND("品 番:",$A$1)),10)
↑これで、抜き出しはできたのですが、繰り返し次の品番、原産国も抜き出していきたい場合はどのようにしたらよいのでしょうか??
どうぞお力貸してください。
宜しくお願いします。
No.7ベストアンサー
- 回答日時:
#6の回答者です。
補足をみました。
内容が変わっています。
原産国 ->生産国に変わっているので、それではエラーが発生してしまいます。
質問内容の、そのデータは、IE Document の innerText とかではないでしょうか。innerHTML のデータとか提示できませんか?もう少し、まともな切り分けが可能です。
それに、Table で取り出せば、そのまま表になって並ぶはずです。
今回のコードを、文字の規則に従って、さらに直すことは可能ですが、今の段階では、この程度でもよいのかと思います。
''------
Sub SplitWordsR()
Dim str_text As String
Dim i As Long
Dim buf1, buf2, buft
str_text = Range("A1").Value
buf1 = Split(str_text, "品番")
buf2 = Split(str_text, "生産国")
If UBound(buf1) <> UBound(buf2) Then
MsgBox "品番と生産国の数の対応がありません", vbExclamation
If MsgBox("それでも続行しますか?", vbOKCancel) = vbCancel Then Exit Sub
End If
Range("A3:B3").Value = Array("品番", "生産国")
For i = 0 To UBound(buf1)
On Error Resume Next
If Left(buf1(i), 1) Like ":" Then
buft = buf1(i)
Cells(3 + i, 1).Value = Mid(buft, 2, 7)
''Debug.Print buft
Cells(3 + i, 2).Value = Mid(Split(buft, "生産国")(1), 2, 7)
buft = ""
End If
On Error GoTo 0
Next
End Sub
すごいです!!やっぱりVBAってすごいですね。頑張って関数も勉強してこういうのが少しでもわかるようになりたいです。やりたいことができました。有難うございます
No.6
- 回答日時:
「品 番 」はカウントには入れていません。
「品番」でないとけません。以下は、徹底的に切り分けてしまいました。'//'標準モジュール
Sub SplitWords()
Dim str_text As String
Dim i As Long
Dim buf1
str_text = Range("A1").Value
buf1 = Split(str_text, "品番")
Range("A3:B3").Value = Array("品番", "原産国")
For i = 0 To UBound(buf1)
If Left(buf1(i), 1) Like "[::]" Then
Cells(3 + i, 1).Value = Mid(buf1(i), 2, 7)
Cells(3 + i, 2).Value = Mid(Split(buf1(i), "原産国")(1), 2, 7)
End If
Next
End Sub
'//
No.5
- 回答日時:
結局 どうなるのが正解なのかよく分かりませんが 2007では FILTERXML関数が
使えないので
品番:
=LEFT(TRIM(MID(SUBSTITUTE($A$1,"品番:",REPT(" ",999)&"品番:"),ROW(A1)*999+1,999)),10)
原産国:
=LEFT(TRIM(MID(SUBSTITUTE($A$1,"原産国:",REPT(" ",999)&"原産国:"),ROW(A1)*999+1,999)),10)
下方向にコピー。
No.4
- 回答日時:
Sub Sample()
Dim tmp() As String
tmp = Split(Range("a1"), " ")
i = 2
For Each abc In tmp
If InStr(abc, "品番") > 0 Then
Cells(i, 1) = Left(abc, 10)
i = i + 1
End If
If InStr(abc, "原産国") > 0 Then
Cells(i, 1) = abc
i = i + 1
End If
Next abc
End Sub

私の例題が悪くてできませんでしたが、勉強になりました。こんなのできるなんて本当に尊敬します。こんな初心者に丁寧にありがとうございました。
No.3
- 回答日時:
回答がつかないようですので。
マクロを使っていいのならできますよ。まず、文字列をすべて1文字ずつ分けて配列に入れます。例えば最大文字数が200文字とすると、
下の文字列がA1に入っているとします。
品 番:AAAAAA おはよう 原産国:インドネシア さようなら 品 番:BBBBBB おはよう 原産国:カンボジア・・・・・・・・・・・・・・・・・
結果はA10以下に書き出します。
sub test()
dim word(200) as string
myword = Cells(1, 1)
For i = 1 To 200
word(i) = Mid(myword, i, 1)
Next
k = 10
For j = 1 To 197
If word(j) & word(j + 1) & word(j + 2) & word(j + 3) = "品 番:" Then
Cells(k, 1) = Mid(myword, j, 10)
k = k + 1
End If
Next
end sub
原産国も同じような方法でできるはずです。
きっともっとスマートな方法があると思いますが、それは別の方にお願いします。(*^_^*)
No.2
- 回答日時:
数式と例が合わないので意味が分かりにくいです。
「品番」なのか「品 番」なのかどっちですか?
「品番から始まる10桁」というのは 例でいうとどこのことですか?
> =LEFT(RIGHT($A$1,(LEN($A$1)+1)-FIND("品 番:",$A$1)),10)
これは
=MID($A$1,FIND("品 番:",$A$1),10)
とどう違うのでしょう。何か意味があってなさっているのでしょうか。
あと Excelのバージョンはいくつですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 経済学 経済についてです! 技術水準の高い工業製品、発展途上国は原材料・部品などを生産する分業のことをなんと 2 2023/07/16 08:27
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- 政治 汚染水放出における中国の反応 20 2023/08/24 16:58
- HTML・CSS HTMLタグのあるCSVファイルを利用する方法 4 2023/03/19 14:41
- Java Java 南京錠 2 2023/02/04 11:46
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- 関東 長文です。 初めて1人で飛行機に乗ることになりました…。 しかも人生初の東京行きです。 普段はJRに 3 2022/06/29 14:50
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- シューズ・ブーツ この黒タグ本物でしょうか? 1 2023/07/18 02:06
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
オートフィルターの絞込みをし...
-
【マクロ】【画像あり】関数が...
-
EXCELのVBAで複数のシートを追...
-
勤怠表について ABS、TEXT関数...
-
【Officer360?Officer365?の...
-
Excelに貼ったXのURLのリンク...
-
Excelで4択問題を作成したい
-
エクセルについて
-
エクセル
-
グループごとの個数をカウント...
-
エクセル GROUPBY関数について...
-
グループごとの人数のカウント
-
グループごとの人数のカウント
-
エクセルシートの見出しの文字...
-
Amazonでマイクロソフトオフィ...
-
エクセルの複雑なシフト表から...
-
エクセルの関数について
-
【マクロ】実行時エラー '424':...
-
ページが変なふうに切れる
-
エクセル ドロップダウンリスト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報
不備があり申し訳ありません。
品番は空白なしです。何かの拍子に空白を入れてしまったようです。
私がやってみた関数はいろいろなところから拾ってきて繋げたのでおかしいかもしれません。
ちなみにバージョンは2007です。
明日回答頂いたものでやってみたいと思います。またご報告します。
いろいろやってみましたが、私の例題が悪かったようで、うまくできませんでした。
言葉は大分変えたのでぐちゃぐちゃの文章ですが、こういったA1にずらーっと入ってる文章から品番と原産国を抜き出したいです。
ゴムを全面に採用したワニモデルに新色登場。品番:X6X93A価 格:¥92,8AA+税ピコ:SS~M素材名:MOMIJI/本体=かいこ製 支え=毛皮製素敵な機能/ゴム底インナー機能/春ですね式(SAKURA)生産国:カナダ花粉症が始まる:CHI6A9・HIK799インディゴブルーxインディゴブルー品 名:キリンXNewColorNewColorアリゲーターエックス49499A9Aブラックxブラックお菓子カレンダーEXSYゴムを全面に採用したワニレディスモデルに新色登場。品番:X6X33A価 格:¥92,8AA+税ピコ:22.5~26.A素材名:MOMIJI/本体=かいこ製 生産国:中国‥‥‥
品番と生産国が抜き出したいです。原産国と記入してしまいました。失礼致しました。MIDとFINDで最初の品番と生産国を抜き出すところまではできましたが、次の品番と生産国を抜き出す事ができず悩んでいます。VBAもできたらおもしろいですが、拾ってきたものを張り付けるレベルです‥