初めての書き込みます。
エクセル初心者でいろいろ調べましたが、応用力がなく行き詰まってしまいました。
詳しい方お力貸してください。
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ランキング
-
【関数】スペースがいくつ入っ...
-
西暦や和暦の表示をyyyymmdd表...
-
【Microsoft Office Excel Comp...
-
Excelはなんで先頭の0を消すん...
-
Excelのセルを飛ばして入力する
-
別シートからの文字を変更
-
エクセルの行の抽出について質...
-
Excelのオートフィル
-
Excel 2019 のピボットテーブル...
-
スプレッドシート クエリ関数 1...
-
excelの不要な行の削除ができな...
-
Excel初心者です。 詳しい方、...
-
【Excel】セル内の時間帯が特定...
-
Excel初心者です。 詳しい方、...
-
EXACT関数とIF関数の組み合わせ...
-
Excelのグラフ軸について
-
スマートな関数を教えて下さい。
-
Excelで全角を半角にしたいので...
-
【マクロ】エクセルにかいてあ...
-
Excel:一部のフォントでセルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報
不備があり申し訳ありません。
品番は空白なしです。何かの拍子に空白を入れてしまったようです。
私がやってみた関数はいろいろなところから拾ってきて繋げたのでおかしいかもしれません。
ちなみにバージョンは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もできたらおもしろいですが、拾ってきたものを張り付けるレベルです‥