- 締切済み
エクセルでセルをクリックしてプルダウンのようなもの
エクセルで、合計数字を表示するセルをクリックしてプルダウンのようなものを出せて、そこに数字を入力し、その合計をセルに返すことはできるのでしょうか? ........A...............B..... 1...商品......販売数 2.....あ............140 3.....い..........1000 4.....う.............300 上の様に見える表を完成させたいのですが、例えばB列の商品"あ"の販売数を、 B2をクリックするかなにかして、プルダウンで 3/15 A社 50 2/06 B社 10 4/10 C社 80 と入力し、その合計数をB2に表示させたいのです このような事はエクセルでできますでしょうか? 入力する”3/15 A社 50”ののような項目は1品目で最大30項目くらいになりますので、 あくまで行数や列数を増やしたりしたくないもので、入力サブシート?的なものに入力し、 合計数を目的のセルへ表示したいのです VBなどあまりいじった事ないのですが、お分かりの方がおられましたらご教授願えませんでしょうか どうぞ宜しくお願い致します
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- tea1000
- ベストアンサー率100% (1/1)
いまだにExcel2002を使っているので操作が違ったらごめんなさい VBAを使わなくても、プルダウンを表示するだけなら セルを選択して、メニューの[データ]->[入力規制]を開いて、 [設定]タブの[入力値の種類]を[リスト]に変更 元の値に選ばせるデータ一覧を範囲指定すればプルダウン選択はできます。 条件によってプルダウンの値を変える場合はIF文を駆使すれば何とかなったりならなかったり
- tom04
- ベストアンサー率49% (2537/5117)
No.2です! たびたびごめんなさい。 3/15 A社 50 2/06 B社 10 4/10 C社 80 と表示させ・・・ の部分を見逃していました。 Sheet1のD列以降にSheet2のデータを表示させるとします。 もう一度コードを載せてみますので、前回のコードはすべて削除して ↓のコードをコピー&ペーストしてみてください。 '↓の行から Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Columns(2)) Is Nothing Then Exit Sub On Error Resume Next Dim i As Long Dim str As String Dim ws As Worksheet Set ws = Worksheets("Sheet2") i = Target.Row If Cells(i, 1) <> "" Then Cancel = True str = Cells(i, 1) ws.Columns("A:D").AutoFilter field:=2, Criteria1:=Cells(i, 1) ws.Columns("A:D").Copy Destination:=Cells(1, 4) Target = WorksheetFunction.SumIf(ws.Columns(2), Cells(i, 1), ws.Columns(4)) End If ws.Select Selection.AutoFilter Worksheets("Sheet1").Select Cells(i, 2).Activate End Sub 'この行まで 今回もSheet1のB列セルでダブルクリックです。 ※ 外していたらごめんなさいね。m(_ _)m
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! ご希望通りになるかどうかわかりませんが・・・ セルをダブルクリックする場合の一例です。 ↓の画像のようにSheet2にデータがあるとします。 画面左下のSheet1のSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストして、Sheet1のB列をダブルクリックしてみてください。 '↓の行から Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Columns(2)) Is Nothing Then Exit Sub On Error Resume Next Dim ws As Worksheet Set ws = Worksheets("Sheet2") If Target.Offset(, -1) <> "" Then Target = WorksheetFunction.SumIf(ws.Columns(2), Target.Offset(, -1), ws.Columns(4)) End If Cancel = True End Sub 'この行まで ※ Sheet2の配置はこちらで勝手に作っていますので、実状と異なる場合は全く機能しません。 (列番号等・・・) 参考になりますかね?m(_ _)m
- acha51
- ベストアンサー率41% (436/1042)
VBEではありませんが添付図参照して以下試してください このシート名を"商品別集計"に変更、シート2の名前を"あ明細"に変更、以下"い"も同様 ”あ”シートを商品ごとの明細票を入力し、合計セル C8に集計する 合計セル C8を右クリック し”コピー” ”商品別集計”シートに戻り B2に”形式を選択して貼り付け” →”リンク貼り付け” (これで”あ”シートの合計がここに反映される) "商品別集計"B2セルを選択し 右クリック →ハイパーリンク →ブックマーク →"あ"シート指定 →OK すると文字色がかわる、以後セルを選択すると”あ”に飛ぶ 集計に戻るにはシート名をクリックする、 これでいかがでしょうか