- ベストアンサー
VBAとメッセージ関数
こんばんは。 VBA初心者で、勉強中です。 今、エクセル2003で以下画像のようなシートを作成しました。 B列に商品の納品日、C列に売上日があります。 そこでVBAで、売上日の列の日付を検索し、 直近の売上日(一番古いものから)から一番最後の売上日(一番新しい日付)までを 以下のようにmsg関数で画面表示したいのです。 売上日:1/2~4/4 データ検索はA列の店舗名が空欄になるところまでとします。 今は手作業でやっているので大変です。 よろしくお願いします。
- aidorumary
- お礼率5% (16/297)
- オフィス系ソフト
- 回答数3
- ありがとう数0
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
MsgBox "売上日 : " & Format(WorksheetFunction.Min(Range("C:C")), "m/d") & "~" & Format(WorksheetFunction.Max(Range("C:C")), "m/d") でいかがですか セルに表示するのでしたら表示したいセルに ="売上日 : "&TEXT(MIN(C:C),"m/d")&"~"&TEXT(MAX(C:C),"m/d") としてください。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17068)
質問内容が良く判らない。 画像は、質問のことを実現した結果なのか? >下画像のようなシートを作成しました、なら作られた素データなのか。 素データだとすると、同じ日付の行はないのか。 ー また初心者だからMsgboxを思いついたのかもしれないが、多項目(=シートでは複数多列)のデータを現すのには適してない。 新しいシートなどに表示するのが普通ではないか。 ーー 何がしたいのか、文章で明確になっていない。 例示データの作り方が割る以下、少なすぎるか。 店舗名のばらつき状態を見たいのか、納品日・売上日のばらつきを見たいのか。 普通繁盛した店なら同一店舗・同一納品日などのデータは多数あるはず。 何を知りたいのか。納品作業の段取りに使うなら、すべての日付でなく、指定期間の表がほしいだろうし、納品の済んだ前の過去のデータは出す必要がないだろう。 質問者の頭にあり、質問者が考えて、見ているシートのことで、質問に表現できてない大切なことはないのか。
- layy
- ベストアンサー率23% (292/1222)
参考サイト。 文字列の存在を調査 http://www.asahi-net.or.jp/~zn3y-ngi/YNxv258.html#4 VBAでやるからには、 ここの存在チェックを応用し、 最小値と最大値を変数で確保する、セルを動かすなど 後から使えるような機能もマスターすると良いです。 最小値、最大値、を取得する関数を使う。 並べ替えして1番上、1番下を求める。 VBA勉強としては物足りない、でしょう。 手段はいろいろありますから、理解できたもので使ってみる。 次に他の手段も試してみる。 結果が出たら復習してみる。 VBA初心者ですので、 ここのVBAのコラムを見てから取りかかると良いです。 http://www.asahi-net.or.jp/~ef2o-inue/menu/menu01.html ほか http://www.voicechatjapan.com/excelvba/VBArei2.htm
関連するQ&A
- エクセル VBAで関数
こんばんわ。いつもお世話になっております。 エクセルでデータを加工しているのですが、関数で加工するととても遅くなってしまうので なんとかVBAで作業できないかと模索中です。 Sheet1の、A列=取引先 B列=支店名 となっており、それが3,000行ほどあります。 Sheet2も、A列=取引先 B列=支店名 となっており、 Sheet1のC列に、Sheet1のA列のB列という支店が、Sheet2にあるか確認したいのです。 現在は、Sheet1のC列に、SUMPRODUCT関数でカウントさせているのですが、大変重いです。 ほかのSheetで、VBAを使って関数のような働きをさせている部分があります(前任者作成) そのように、なんとかVBAを使用したいのですが、なかなかうまく出来ません・・・。 どうか、お力を貸してください!! うまく説明できなくて、わかりづらかったらごめんなさい。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセルの関数
エクセルの関数についての質問です。 シート1(売上)日付・金額 シート2(月報)日付・金額 シート1(売上)から日付と金額を拾い出して、シート2(月報)に集計したいのですが、シート1(売上)では日付が同じときもあり、シート2(月報)では金額も合計しなくてはいけないのです。もし、ご存知の方がいらっしゃいましたら教えてください。 こんな感じです。 シート1(売上) 日付 金額 2月2日 20000 2月4日 25000 2月5日 20000 2月4日 18000 2月7日 20000 2月10日 23000 ・ ・ ・ ・ ・ ・ シート2(月報) 日付 金額 2月1日 ここに関数 2月2日 ここに関数 2月3日 ここに関数 2月4日 ここに関数 2月5日 ここに関数 2月6日 ここに関数 2月7日 ここに関数 ・ ・ ・ ・ ・ ・ 伝わりましたでしょうか? よろしくお願い致します。
- ベストアンサー
- その他(インターネット・Webサービス)
- EXCEL関数 一覧から週計データを導き出したい
Sheet1に1売上商品1行のデータが年間通しで並んでいます。 Sheet2に1日1行の週計データを表示したのですが。 Sheet2の [B2]以下の列に入れる関数 Sheet2の [C2]以下の列に入れる関数 Sheet2の [D2]以下の列に入れる関数 Sheet2の [E2]以下の列に入れる関数 を教えてください。 ================ Sheet1 売上入力表 Sheet2 日別売上集計表 画像添付しています
- ベストアンサー
- その他MS Office製品
- Excel VBA
Excel VBAについて シート1にはデータが入ってます。 G列に日付、L列に商品名、N列に件数。 シート2には集計結果を入力したいです。 セルB2に、日付が10月1日から15日までで、商品名がAの件数の合計。 セルB3は、日付が10月16日から末日まで、セルB4は、日付が11月1日から15日までと半月毎に集計を半年後の末日まで繰返し、B2の数行下には、商品名Bの集計行を作り、その数行下には商品名Cの集計行を作りたいです。 これまでは関数SUMIFSで集計していましたが、複数店舗分のシートの更新・メンテナンスが大変なので、VBAでの集計を考えいろいろ調べてるのですが、方法が思い付かないので、ご教授ください。
- 締切済み
- Visual Basic
- VLOOKUP関数をVBAで使用したい
VLOOKUP関数をVBAで使用したい 「検索」シートにID番号を入力すると、「データ」シートのA列に入っているデータから入力されたID番号を検索し、該当するID番号のある行の横並びに入っている別の列データ(B~AG列)を取り出し、それぞれを「検索」シートの様々なセルに表示するVBAを作っていますが、VBAでVLOOKUP関数を用いる方法がよく分からず苦戦しています。 「データ」シートの1、2行目は見出しで、検索されるデータが入っているのは3行目からです。また、「データ」シートには不定期に新しいデータが追加されていきます。 「検索」シートに検索結果を表示する際も、以下のように規則性のないセル配置なので少しややこしいです。 「検索」シートのセル=「データ」シートの列 B6=B列 B8=C列 B10=D列 B11=E列 B12=F列 B13=G列 B14=H列 B16=I列 D16=J列 F16=K列 B17=L列 D17=M列 F17=N列 B20=O列 C20=P列 E20=Q列 B21=R列 C21=S列 E21=T列 B22=U列 C22=V列 E22=W列 B23=X列 C23=Y列 E23=Z列 B24=AA列 C24=AB列 E24=AC列 B26=AD列 E26=AE列 B29=AF列 B31=AG列 このような動作をVBAでさせることは可能でしょうか? また、検索して該当するID番号がなかった際も、VBAだとそこで動作が止まってしまうので、「該当するID番号がありません」といったエラー判定が出るようにすることはできますか? 教えてください。よろしくお願いします。
- 締切済み
- オフィス系ソフト
- VBAで複数条件検索どうすればよいですか?
【Sheet1】 発注日 品番 ロットNo 納品日 A B C D 1 3/11 553 111-111-1111 3/17 2 3/11 123 222-222-2222 3 3/11 223 333-333-3333 4 3/12 123 444-444-4444 3/17 5 3/12 553 555-555-5555 【Sheet2】 納品日 品番 ロットNo A B C 1 3/17 553 111-111-1111 2 3/17 123 444-444-4444 3 3/17 223 666-666-6666 エクセル2010・VBAで、【Sheet2】の品番とロットNoの条件に合う行を【Sheet1】より探し、【Sheet1】D列に納品日を入力し、その行のロットNoを明るい緑で塗りつぶす。 【Sheet2】の条件が【Sheet1】にないなら【Sheet2】の行のロットNoを、赤で塗りつぶす。 【Sheet1】は発注リスト、【Sheet2】は納品リストになります。 納品日は検索した日の日付になります。 Findを使い試行錯誤しましたが、思うように動かず、スキル不足で困っています。どなたか、ご教授願います。宜しくお願い致します。
- ベストアンサー
- Visual Basic
- エクセル 関数を自動的に入力するVBAで困っています
VBA初心者です。 エクセルの入力シートで行ごとにデータを下記のように入力しています。 A B C 1 日付 品番 商品 2 10/25 10 りんご 3 10/26 20 みかん 4 5 6 2行目から順にデータを入力すると自動的にC列にVBAで VLOOKUP関数をセットして商品を検索したいのですが 上手くできませんでした。 教えてください。よろしくお願いします。
- 締切済み
- その他(プログラミング・開発)
- VLOOKUP関数をVBAで書くには
EXCEL VBAの初心者です VLOOKUP関数をVBAで書きたいのですが、よくわかりません すいませんがどなたかご教授、願えないでしょうか? sheet1 sheet2 A B A B 名称 CD 名称 CD 滋賀県 25 滋賀県 25 京都府 26 大阪府 27 大阪府 27 兵庫県 28 兵庫県 28 sheet2のA列をキーにsheet1のA列と照合して sheet2のB列にsheet1で一致した行のB列をコピーする VLOOKUP関数を使うと、sheet2のB2は =IF($A2="","",VLOOKUP($A2,Sheet1!$A$2:$B$5,2,0)) としたら、25を得ることができました VBAでする場合、どのように書けばいいのでしょうか? よろしくお願いします
- ベストアンサー
- Visual Basic
- VBAの関数について
VBA初心者です。 VLOOKUP関数の使い方がわかりません。 具体的に書かせてもらうと VBAの中にVLOOKUP関数を使いたいです 試験1ファイルのシート"sheet1"にある 検索値を使い 試験2ファイルの指定した検索範囲を 試験1ファイルのシート"sheet1"の指定した位置に数値を挿入することです。 例えばですが(この使い方も間違ってるかもしれません)コードを書いてみると 試験1の検索値はA5セルとします 試験2の検索範囲はB1~C20とします 検索範囲から取得した数値の位置はD5とします VLOOKUPに関してですが 検索値は変数を使い 検索値範囲も変数を使い 列番号はC列がいいので3で 検索方法はFALSEでお願いします sub test() dim a as range dim b as workbooks dim c as range set a = range("B1~C20") set b = workbooks("sheet1") set c = range("A5") workbooks("試験1").worksheets("sheet1").range("D5").value=workbooks("試験2").activesheet."=VLOOKUP(ここがわかりません)".value end sub そもそも変数やsetの使い方が間違ってるかもしれませんm(__)m コードを書いて貰えるととても助かります。 回答お願いします。
- ベストアンサー
- Visual Basic
- エクセルについて質問です。
エクセルについて質問です。 『同じ日付に同じ名前があった場合、その名前の人の売上合計から10%引きたい』 初めて質問させて頂きます。関数をあまり知らないので、いろいろ検索したのですが、 どうしてもわかりません。教えて頂きたく存じます。宜しくお願い致します。 A列~Z列まで日付や売上や内容などが書かれた表があります。 同じ人が同じ日に同じものを売り上げても、一行にまとめず、複数行に書きます。 そこで、A列に入った日付を参照し、同じ日付に同じ名前(E列)があった場合、 K列かJ列(人によって違うのです)の売上を足して、その10%をU列に表示したい のですが、そのようなことは可能でしょうか? A列 E列 J列 K列 U列 ―――――――――――――――――――――――――――――――――――――――― 2010/01/18 田中 10000 空欄 ―――――――――――――――――――――――――――――――――――――――― 2010/01/18 佐藤 空欄 10000 ―――――――――――――――――――――――――――――――――――――――― 2010/01/18 田中 10000 空欄 2000←これを出したい。 ―――――――――――――――――――――――――――――――――――――――― 2010/01/18 佐藤 空欄 10000 2000←これを出したい。 ―――――――――――――――――――――――――――――――――――――――― 2010/01/18 斉藤 20000 空欄 空欄←ひとつしか売上が無いので10%は出さなくて良い。 ―――――――――――――――――――――――――――――――――――――――― わかりづらくても申し訳ありません。 どなたかお力を貸してください。
- ベストアンサー
- その他MS Office製品