エクセルでこんなことできますか? マクロ?関数?マクロ・関数の合せ技? 自分...
2009/3/2719:25:29
ベストアンサーに選ばれた回答
編集あり2009/3/2721:29:21
私もそんなに詳しくはないので、他にもっと簡単な方法があるかもしれませんが、
まずAとBの間に作業列を一行挿入し、その列に=IF(A3="","",A3&"-"&COUNTIF(A$3:A3,A3))を入力、B13までコピー。
で、HとIの間にも一列作業列そ挿入し、各グループごとに1,2,3,4……とNOを振っていきます。
最後にJ4から=IF(COUNTIF(B$3:B$13,1&"-"&I4)=0,"",VLOOKUP(1&"-"&I4,B$3:C$13,2,0))
J14から=IF(COUNTIF(B$3:B$13,2&"-"&I15)=0,"",VLOOKUP(2&"-"&I15,B$3:C$13,2,0))
J24からは=IF(COUNTIF(B$3:B$13,3&"-"&I26)=0,"",VLOOKUP(3&"-"&I26,B$3:C$13,2,0))で一応そんな感じにはなります。
んー、でも購入先を表示させるのは別シートってことなんですよね?
上記関数は添付の表を元に作ったので、書き込むセルの位置とかは変わってくるとは思います。
ちなみに購入先や商品の元データがSheet1で、購入先1を表示させる表がSheet2のA2から始まるとするとB列に作業列を作りNOを付け、C2に=IF(COUNTIF(Sheet1!B$3:B$13,1&"-"&B3)=0,"",VLOOKUP(1&"-"&B3,Sheet1!B$3:C$13,2,0))になります。
さらにたぶん添付のデータは例ということで、実際に書き込まれる商品はもっと多いでしょうから、範囲指定の数値も若干変わると思いますが参考ぐらいにはなるでしょうか? とこんな感じでいかかでしょうか?
このQ&Aで解決しましたか?質問する
閉じる
ベストアンサー以外の回答
1〜2件/2件中
- 並び替え:回答日時の
- 新しい順
- |古い順
2009/3/2723:24:51
シート名:データベース
シート名:購入先1
シート名:購入先2
シート名:購入先3
というシートを用意して
ALT+F11ボタンを押して
データベースのところをダブルクリックして
以下のマクロを貼り付けたらどうでしょうか。
ただし、まとめて貼り付けたりするとはじめの行のものしか別シートに反映されませんけど。
Private Sub Worksheet_Change(ByVal Target As Range)
'■■■番号が入力された時の処理■■■
If Target.Column = 1 Then 'And Target.Row <= 1000 Then '変更されたセルが1列なら
On Error GoTo exit1
Select Case Target.Value
Case 1
sh = "購入先1"
r = 2
Do Until Sheets(sh).Cells(r, 2) = ""
r = r + 1
Loop
Sheets(sh).Cells(r, 2) = Cells(Target.Row, Target.Column + 1)
Case 2
sh = "購入先2"
r = 2
Do Until Sheets(sh).Cells(r, 2) = ""
r = r + 1
Loop
Sheets(sh).Cells(r, 2) = Cells(Target.Row, Target.Column + 1)
Case 3
sh = "購入先3"
r = 2
Do Until Sheets(sh).Cells(r, 2) = ""
r = r + 1
Loop
Sheets(sh).Cells(r, 2) = Cells(Target.Row, Target.Column + 1)
End Select
End If
'■■■商品名が入力された時■■■
If Target.Column = 2 Then 'And Target.Row <= 1000 Then '変更されたセルが2列なら
Select Case Cells(Target.Row, Target.Column - 1)
Case 1
sh = "購入先1"
r = 2
Do Until Sheets(sh).Cells(r, 2) = ""
r = r + 1
Loop
Sheets(sh).Cells(r, 2) = Target.Value
Case 2
sh = "購入先2"
r = 2
Do Until Sheets(sh).Cells(r, 2) = ""
r = r + 1
Loop
Sheets(sh).Cells(r, 2) = Target.Value
Case 3
sh = "購入先3"
r = 2
Do Until Sheets(sh).Cells(r, 2) = ""
r = r + 1
Loop
Sheets(sh).Cells(r, 2) = Target.Value
End Select
End If
exit1:
End Sub
2009/3/2721:34:46
「Do Until Sheets、'And Target.Row」に関する質問
このカテゴリの回答受付中の質問
- 【Excel】リンクされた図を含むワークブックが重いので図のリンク状態を制御する...
- 問3番を教えてください!! よろしくお願いします.・゚゚(>ω<。人)
- 臨海セレクトは日付指定できますか?
- 8月末で退職をし、9月下旬にある採用試験を待つ者です 診療内科には行けませんか...
- windowsのoffeceで、フォルダーを開くときに暗証コードを入力しないと、開けない...
- ドロップダウンリストの作り方、OFFSELT
- エクセルのマクロを教えてください。 エクセルバージョン2016 A 1 8304 2 83...
- Googleスプレッドシートで集計したデータをセルに自動で挿入したい https://docs....
- Excelなんですがこのやり方が全く分からないので教えて下さい!! イフ関数のどこ...
- LINE上でのやり取りです。 同窓会目的でグループを作ったのですが、人が増え...
このカテゴリの投票受付中の質問
- エクセルにて生徒の成績計算をしたいと思っています。 範囲を指定して得点率%...
- エクセルのライセンス認証してないファイルの印刷 会社の不手際でオフィスのラ...
- エクセル マクロ エクセルに連続いたデータあります。 セルA列に 12/1 12/1 12/...
- エクセルのデーターで、条件に合うデーターのみを抽出し、空所には、何も表示しな...
- Excelで文字色の変更する時によく使用する色がありますが ”その他の色”なので、...
- 【マクロ超初心者】 Excelマクロについてお尋ねです。 下記2点の希望動作が作...
- Excelのマクロについて教えて下さい。 ダブルクリックで●→○→■と変化する設定を...
- Excel初心者です。 関数について質問させてください。 例えばsheet1のA1からA10...
- エクセルのシートのことで Sheet1のI列に○が入っている行のみ Sheet2にリンク貼...
- EXCEL2016 特定の文字列がある列の最下行データの2つ下、3つ下にデータを入力し...
この質問につけられたタグ
カテゴリQ&Aランキング
- 戻る
- 次へ
総合Q&Aランキング
Yahoo!知恵袋カテゴリ
お客様自身の責任と判断で、ご利用ください。