うちは単純にExcel(VER.97)で顧客データを管理しているのですが、お客さまからのメールをばらばらにペーストして、振込用紙に住所とかを印刷したり、以前の注文商品がなんだったかを見るようにしています。
たとえば、ショッピングカートでメールを受注すると、
『購入商品情報』
----------------------------------------------------------------------
(商品1)
品番:SND-R-R6
品名:サンドストーン
単価:30円
という感じにメールが送られてきます。
これを、まるごとメールの文章をExcelにペーストすると、行数が多い文だけペーストに時間がかかります。
でも、まるごとペーストすると、すべての内容がA列に入るので、何か計算式を使えば、一発で任意の場所にそのデータの値を持っていけるのではと思うのです。
たとえば、
「[商品1] という文字列と同じ列の、 [商品1] の次の行のセルの値を返す 」
「[商品1] という文字列と同じ列の、 [商品1] の次の次の行のセルの値を返す 」
という計算式。これが使いたくてしょうがないのですが、計算式の辞書を片手に苦心しましたが分からない・・・
もしご存知なら助けてください~よろしくおねがいします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
#1で回答を入れたものです。
実のところ質問の内容を捉えていませんでした。VBAでないと出来ないのではとのご回答もあり、再度下記を載せてみます。質問の内容を明確にするためにもしたいことは下記(1)と(3)のようなものでしょうか。(1)まずエクセルのSheet1にテストデータを作ります。セルA1からA16までです。
(商品1)
品番:SND-R-R6
品名:サンドストーン
単価:30円
品番:SND-R-R7
品名:ノート
単価:51円
品番:SND-R-R12
品名:消しゴム
単価:100円
品番:SQT-R-R99
品名:筆箱
単価:200円
品番:AAB-Y-R10
品名:マーカー
単価:130円
Sheet1にボタンを1つ貼りつけておきます。
Sheet1に貼りつけが終わるとボタンをクリックします。
(2)VBEのModule1に
Sub test01()
d1 = Sheets("sheet1").Range ("a2").CurrentRegion.Rows.Count ' この行は上の行の右端に続けてください
d2 = Sheets("sheet2").Range("a2").CurrentRegion.Rows.Count ' この行は上の行の右端に続けてください
k = d2 + 1
For i = 1 To d1
a = Worksheets("sheet1").Cells(i, 1)
If Left(a, 3) = "品番:" Then
Sheets("sheet2").Cells(k, 1) = Mid(a, 4, 10)
a = Worksheets("sheet1").Cells(i + 1, 1)
Sheets("sheet2").Cells(k, 2) = Mid(a, 4, 10)
a = Worksheets("sheet1").Cells(i + 2, 1)
Sheets("sheet2").Cells(k, 3) = Mid(a, 4, 10)
k = k + 1
End If
Next i
End Sub
を作ります。
またSheet1のイベントプロシージャーとして
Private Sub CommandButton1_Click()
test01
End Subを作る。
(3)前記ボタンをクリックすると、Sheet2のA2からC6に
SND-R-R6サンドストーン30円
SND-R-R7ノート51円
SND-R-R12消しゴム100円
SQT-R-R99筆箱200円
AAB-Y-R10マーカー130円
が出来ます。
(4)仮定があります。貼りつける前に毎回Sheet1はクリアーしてください。VBAでクリアーも可能。品番、品名、単価はこの順序でならんでA2セル以下に続いてSheet1に入ってくるものと仮定しています。品番は10桁以下と仮定しています。品番:、品名:、単価:はこのままの言葉で入ってくるものとします。これらの仮定は外してもプログラムを複雑にすれば対処可能と思う。
こんにちは、るるるーです。
丁寧にご回答頂いて、びっくりしました。お忙しい中本当にありがとうございました。
でもでも、
(1)まずエクセルのSheet1にテストデータを作ります。セルA1からA16までです。
はできましたが、
Sheet1にボタンを1つ貼りつけておきます。
Sheet1に貼りつけが終わるとボタンをクリックします。
ここからが分かりません。オートシェイプで形を作るのがぜいぜい・・・
VBEとマクロがなんであるか、Module、イベントプロシジャーなどの意味がわからないのです。
imogasiさんと私の知識に雲泥の差あり・・・
いろいろ出来て大変便利そうなのですが、難しいですね。計算式でできないか模索中です・・・
大変詳しく時間をかけて説明して説明してくださっているだけに、申し訳ない気持ちでいっぱいです。
もうちょっとがんばってみますね。
すみません&ありがとうございました。
No.2
- 回答日時:
こんにちは。
最終的にどんな形に持っていきたいのでしょうか?
データベース形式のシートにデータを写したいって事でしょうか?
↓こんな感じで。
A B C D
1 [顧客] [品番] [品名] [単価]
2 田中 SDR サンド 30
3 加藤 DDS ランド 50
4
・
関数だけでは難しい気がします。
マクロを使う必要がありそうな。。
No.1
- 回答日時:
問題の意味が捉えにくいのですが、的外れなら済みません。
(1)=OFFSET()という関数があります。これは使えませんか。A1からB3に下記のデータをいれて
12
23
34
例えばC3に=OFFSET(A1,1,1)-->3,=OFFSET(A1,2,1)
-->4です。()内に入れる項目はそのセルを基準にして、真中は、それ初項のセル自身を1として、下へ何行、右はそれ自身の列を1として、右へ何列を入れます。マイナスも指定可能でそれぞれ、上行へ、左列への意味になります。
(2)もう一つ。送る方のセルから発想して難しくなって
いませんか。受ける方のセルに関数式をいれるのですよ。また=A1なども関数式と同類に考えないと。
言いたい事はA1のセルの値をD1にもって来たいなら、
「D1セルに」=A1と入れれば良いことです。A1->D1をするのにA1セルにどうしようと思っていませんか。(思い過ごしかな?判ってるワイと怒らないで下さい。)
この回答への補足
offset関数も考えたのですが、探した関数の本には、「セルの基準値がセル番号(「A1」とか)」のものしか載っていなかったので、それを文字列に対応できるように応用できなかったのです・・・。
こちらではもうすこし具体的でしょうか?
(Sheet1のなかみ)←メールをそのままペースト
A
1 [商品1]
2 品番:SND-R-R6
3 品名:サンドストーン
4 単価:30円
5 -----------
6 [商品2]
7 品番:SND-R-R8
8 品名:サンドストーン
9 単価:50円
(Sheet2のなかみ)←こちらに計算式をいれて、あとで振込用紙などフォームに加工する予定
A B C D
1 購入商品情報 品番 品名 単価
2 [商品1] 品番:SND-R-R6 品名:サンドストーン 単価:50円
3 [商品2] 品番:SND-R-R8 品名:サンドストーン 単価:50円
もしできれば、「品番:」「品名:」「単価:」は抜きたいのですが、無理ならこのままでも大丈夫。
VBEとかマクロもやってみようと思ったのですが、やったことがなくて、ボタンを作る事が出来なくて挫折・・・
お忙しいところ質問の回答ありがとうございます。
こんなかんじでわかりますか?
本で調べたけど、どうしてもわからなくて、教えて!gooのことを会社の子に教えてもらい、初めて質問しました。今日改めてみてみると、追加の質問もたくさんあるし、すごく親身になって回答を探してもらって、来てよかった♪もうすこしはじめから具体的に質問していたらよかったなと思います。
やっぱり計算式だけでは無理でしょうか?今日、はじめて「マクロの記録」っていうのをやってみると、行を追加したり、計算式を入れたり、書式をコピーしたりが一度でできてびっくりしました。
こわかったので、使った後は作ったマクロを消しちゃいましたけど。(間違って他のファイルに使いそうなので)
でも、抽出はわかりませんでした。1歩ずつすすんでみます。
どうもありがとうございました♪もしお時間があるようならまた教えてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの条件付き書式 個人シートを参照して集計シートに色付けしたい 1 2023/06/22 00:39
- Amazon アマゾン 7 2022/06/11 11:03
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- Excel(エクセル) スプレッドシートでの質問です 1 2023/07/06 20:43
- Excel(エクセル) エクセルの書式設定の表示形式で設定した文字を文字列としてコピーしたい 1 2022/12/21 10:41
- Visual Basic(VBA) VBAコードで質問があります 2 2022/10/20 15:27
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Amazon AmazonでSSDを返品しました。返品しても購入履歴のところは返品完了にならないのですか?? 3 2023/01/05 17:38
- ネットスーパー 最低注文金額1円からで、送料無料の商品 3 2023/03/26 14:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
中学生です。 チ○コを小さくす...
-
バイトの研修は何分前に行けば...
-
修正ペン・修正テープが利用で...
-
料、代、費の使い分けについて
-
コンビニでエアダスターは、売...
-
ノートPCで常に「シュー」と言...
-
エクセルの折れ線グラフの折れ...
-
自分で処女膜を破ってしまいま...
-
ふたが開かない・・・
-
生保レディ辞めたいのですが引...
-
自分で刺青の方法は?
-
ノートの余分なページをキレイ...
-
ワイシャツについたボールペン...
-
テーブルに張り付いた印刷物・・・
-
ボールペンをノックしても止ま...
-
マクロ F8が効かない
-
字が汚い人って頭悪いんですか?
-
ボールペンのキャップを紛失し...
-
PS4をノートPCでできないかと思...
-
「緘」のハンコが欲しい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
中学生です。 チ○コを小さくす...
-
自分で処女膜を破ってしまいま...
-
エクセルの折れ線グラフの折れ...
-
料、代、費の使い分けについて
-
バイトの研修は何分前に行けば...
-
鉛筆の囲いは消すべきですか?
-
研修レポートはボールペン書き?
-
コンビニでエアダスターは、売...
-
ふたが開かない・・・
-
ノートの余分なページをキレイ...
-
消しゴムに名前を記入する方法
-
修正ペン・修正テープが利用で...
-
大学の学生証の裏に通学証明書...
-
ノートPCで常に「シュー」と言...
-
会員証などのプラスチックのカ...
-
マクロ F8が効かない
-
パワーポイント2016で蛍光...
-
引き出しに物が引っかかって開...
-
お店で見かける伝票を刺す道具...
-
なぜなら~で始まった文章の終...
おすすめ情報