' 値段を取得 13:30 Dim DMN As Double Pivotの範囲指定は飛び飛びではできませんから、 find next等を使うのでは無いかと色々してみましたが上手く出来ない現状です。 5 いはら  配達  6/20(月) 14:30  8個 最初は単純に何回もForNextで処理しようと思ったのですが、行数が Sheets(1).Range("A2")(i - 1, 4).Formula = MyCount End Sub  Dim A(2 To 5, 3 To 4) Sub 集計() ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ A列 B列   シートBの値取得 ------------------------------------ Set OLDBOOK = ThisWorkbook 多くなると繰り返し回数も多くなり、時間もかかってしまうので、     If Not myVal2 = "_" & "_" Then   Next 返すにはどうしたらいいのでしょうか? でもまぁ無駄になる話でもないつもりなので、時間のある時にでも、 ・となると次はOPEN,INPUTですか?  ├[+] Arr(1)(2) ◇ myDic.Items(2) マクロの記録で作成した一例です。コメントを読んで、適当にアレンジして下さい。 「ある表から、もうひとつの表を参照して、新たな表を作る。」 MyTotal = Sheets(1).Range("A2")(i, 2) End Sub, A列は名称でB列は金額でよろしいんですよねというか t = sh1.Cells(i, "D") If Sheets(1).Range("A2")(i) = "" Then Exit For りんご    緑       100  Arr(0) = myDic.Keys      If .Value = c1 And .Offset(0, 1).Value = c2 Then ans = ans + 1 6  14:00    みうら   4個 If Sheets(1).Range("A2")(i) = Sheets(1).Range("A2")(i - 1) Then 1つ1つ見て考えながら引用させてもらいます。  'とりあえず1982年から2036年まで対応 Set readBook = Workbooks.Open(filename) ' 相手ブックを開いて参照 Dim SH1 As Worksheet たとえば「ああああ」なら個数 3、合計 31000 と、D4とE4に、 If Not myDic.exists(c.Value) Then 'myDicになければ End Sub, A   B   C   D   E    ←シート元 >出力用に2次元に変換するためですね? Dim i, MyTotal As Double, MyCount As Double Set myDic = Nothing       If myDic.exists(myVal2) Then 2 あああああ 10000 A列の文字列には重複があります。 NG 9/21   For Each r In Range("A2", Range("A65536").End(xlUp))   Dim OLDBOOK As Workbook     w(i) = Split(key, "_") 遅くなってすみません。さっそくですが  Next i Dictionaryオブジェクトを用い、A列データをKey、B~E列データを配列でItemとして下記のコードを書きました。   シートBの値取得 私が書いたものでは、 End Sub (デフォルトでBase 0なので通常は省略しますが)ならば、 とりあえず実用性も踏まえました。   myKey = myDic.keys ' 書き出し とりあえず2要素     nn = r.Offset(, 2).Value なし     黄色      200 以下、4行を挿入して、 7/2 ぶどう 200円 Dictionaryオブジェクトは連想配列の作成に特化したオブジェクトです。キーと値をペアで管理できる連想配列はVBAで明示的にデータを指定するときに便利。本記事ではDictionaryの基本から使いどころを解説します。 と、してみたものの、検索しても、その検索結果の隣のセルのコードをどうやって取得すればいいのかが、わかりませんでした。 MyTotal = MyTotal + Sheets(1).Range("A2")(i, 2) 6  B社 管理課  4 8000 2000 DMN = Application.RoundDown(ZPOS / ZPS, 0)   ' 出来上がったデータを表示 テキストデータの取り込みですと、Inputでそのバッファを定義してるのですが、なんか違うような。。。 MyTotal = Sheets(1).Range("A2")(1, 2) A       B        C 上に書いたような意味で同じように"見える"ということです。 「テーブル」という表現をやめて「表」でいうと、 は、A(2 To 5, 3 To 4)   Dim c2 As String 日付のセル書式は「日付」形式に再設定してください 商品名  商品番号  コード >そして加算してゆく方法、     ' 値段を取得 反ってわかり難い、ということのようですね。 Set readBook = Workbooks.Open(filename) ' 相手ブックを開いて参照 Next i [5] 146 × -30 7 ううううう 15000 事前に用意したシート(配達表)の“配達”と“配達時間”が一致したら   Set OLDBOOK = Nothing これを集計すると、 の順で書き出した後に、列を入れ替えて書き出して動かしてました。(下記のコードで入れ替え。)         dicCor.Add sColor, nn 上のような樹形図が浮かび、窮屈な(かなり難しそうな)印象を受けました。   Dim c2 As String  Arrは一次元配列で、 A       B        C 3 あああああ 12000  'フィルター部分 こんな感じではどうでしょうか?m(_ _)m, エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。 key1 key2 key3 key4 集計1 集計2  Dim xlBook 6 いいいいい 11000   Next 以下のような事をしたいのですが、できる限り高速で最も効率の良い方法を教えていただきたいと Set SH1 = OLDBOOK.Worksheets("元") ・ End If 10 おおおおお 14000 実際の表はデータ件数が1万件を越えますのでいちいち手で入れるわけにはいきません。 全体を範囲指定して、集計したい項目をデータフィールドに追加するような対応になります。 たとえば「ああああ」なら個数 3、合計 31000 と、D4とE4に、 6  14:30   いはら   8個 ' お客様の許可なしに外部サービスに投稿することはございませんのでご安心ください。, 【Excel】VBAサンプルを実行すると、読み込んだファイルが読み取り専用になってしまう, http://www.asahi-net.or.jp/~ef2o-inue/menu/menu0 …, http://www.asahi-net.or.jp/~zn3y-ngi/YNxv20.html, http://www.voicechatjapan.com/excelvba/VBArei2.htm, http://www.asahi-net.or.jp/~zn3y-ngi/YNxv258.htm …, http://www5f.biglobe.ne.jp/~pafu/kihonweb/gozen/ …, 【VBAマクロ初心者】Excel VBAで複数ファイルをマージする際にファイルがそれぞれヘッダーの項, Exel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について. If sh1.Cells(i, "D") = sh2.Cells(r, "A") Then Exit For DMN = ZPOS / ZPS writeSheet.Cells(1, 1).Value = readSheet.Cells(2, 2).Value ' 相手シートの B2 の値を自分自身の A1 に書き込む  Application.ScreenUpdating = False Dim writeSheet As Worksheet ' 自分自身の書き出し先シート 2 あああああ 10000 「いいいい」なら個数 2、合計 25000 と、D6とE6に入れたいのです。    ans = Evaluate("sumproduct((" & .Columns(1).Address & "=""" & c1 & _ 日付数単位単価計区分 ご教示いただければ幸いです。 抽出するだけならオートフィルターでもできますが、 テキストデータの取り込みですと、Inputでそのバッファを定義してるのですが、なんか違うような。。。 また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。 Dim OLDBOOK As Workbook 「いいいい」なら個数 2、合計 25000 と、D6とE6に入れたいのです。 2 あああああ 10000 ’実際は40要素くらいある  Next i     Else しかし、少し時間(列入れ替え時)かかるのと、今回は入れ替えの無いパターンなので、前は作れたのに、時間が経って忘れてしまったのか、今回は単純なパターンなのにつまづいてしまったのは、基礎が、身に付いてなかったせいと思い、そこでまた皆様のお力をお借りしたのでした。本当に忘れないようにします。私は、出張が多いので、本当にお世話になりまくりのend-uさんには、何かお土産でも渡したいと思ってます(心から)なにかよい方法(メールアドレス等)でも教えてもらえれば幸いです。今また出かけなければならないので、ここのお礼は、後ほど必ずいたします。YOKOKAMA46, end-uさん。今戻りました。バッチリです。 MyCount = 1 3  12:30 11 かかかかか 13000 myVal2 = myVal(i, 1) & "_" & myVal(i, 3) & "_" & myVal(i, 4) & "_" & myVal(i, 6) '=====↑ ココマデ ↑================================================ Next i '========================================================= 多くなると繰り返し回数も多くなり、時間もかかってしまうので、 >>勝手に.CurrentRegionにしてますが、 Set ws = Worksheets(2) この表を別シートにA列の重複がない表として作成したいと思います。   If sumAry(orgAry(i, 2), 0) = 0 Then 以下のような事をしたいのですが、できる限り高速で最も効率の良い方法を教えていただきたいと   Dim dicName As New Dictionary 12 ききききき 800   With Range("a1", Cells(Rows.Count, "a").End(xlUp)).Resize(, 2) これを集計すると、 Dim ZPS As Double この表で、それぞれ同じ名称の個数と合計金額を求めたいのです。 16:00 3  B社 総務課 10000  2000  1 If Sheets(1).Range("A2")(i) = "" Then Exit For  With ActiveSheet 重複しているNo.の○と×で"数2"の合計のみをみれるようにしたいんですが  Dim orgAry  As Variant このコードで目的は達成しました。 SH1.Select と、結果を返したいと考えています。 5  13:30  Dim rtnAry() As Long For Each c In Range(Cells(1, "A"), Cells(Rows.Count, "A").End(xlUp)) 'A列の各データについて その前提で書きましたが。 自己レス vntData_3 = Columns("C").Value Dim writeSheet As Worksheet ' 自分自身の書き出し先シート Dim ws As Worksheet  Selection.AutoFilter Field:=1, Criteria1:="=ほげほげ", Operator:=xlAnd 1  配達   6/20(月) デバッグはしてません。またオーバーフロー等あると思うのでそのあたりはご自分で。     x = .Transpose(.Transpose(myDic.items))       ' 色情報を更新 ZPOS = Sheet1.Cells(22, 4).Value    End With End Sub 3 あああああ 12000 6 いいいいい 11000  For i = 1 To UBound(orgAry, 1)       ans = .SpecialCells(xlCellTypeFormulas, xlNumbers).Count ↓のコードをコピー&ペーストしてマクロを実行してみてください。 関数で出来ればおなじみのやり方で良いのだが、既に出ているように式が長く複雑で、初心者には何をやって居るかわからない式になる。毎度週に数回このタイプの質問が出て、同じようなタイプの答えになる。Googleででも「imogasi方式」で照会すれば、過去の沢山の例と回答(そのタイプも)が出てくる。 12:00  │└ ・ その際、列が重複する場合にはB~G列は合計数値、E列は文字列を結合させます。 MyTotal = Sheets(1).Range("A2")(i, 2) 宜しくお願いします。, こんにちは というデータがあるとして、A列が「野菜」、B列が「秋物」に合致する Sub 集計() VBAでやるにはどう記述したらいいでしょうか? 9 おおおおお 10000 Sub 別ブックから貼り付ける() 標準モジュールに デバッグはしてません。またオーバーフロー等あると思うのでそのあたりはご自分で。   i = 0 とりあえず実用性も踏まえました。   Dim r As Range 他のフォルダーにあるEXCELの項目の内容を取り込みたいです。 myDic.Add myVal2, myVal(i, 4) 質問はKeyが重複する場合、B~E列のデー...続きを読む, こんにち わ myItem = myDic.items   Dim myDic  As Object またこれとは別に切上げ、切捨ても教えていただけるとありがたいです。, DMN = Application.WorksheetFunction.Round(ZPOS / ZPS, 0) この表で、それぞれ同じ名称の個数と合計金額を求めたいのです。 '--条件をかけて選別 りんご    緑       100   シートAの値取得 7/2 すいか 300円 LBound(,2)がLBound(,2)に移るって考えればいいと思います。 Sub ItemsTest() デバッグはしてません。またオーバーフロー等あると思うのでそのあたりはご自分で。 ActiveWindow.SmallScroll Down:=-3 やりたいことは   myVal = SH1.Range("E2", SH1.Range("A" & SH1.Rows.Count).End(xlUp)).Value       Else りんご  赤  200 myVal2 = myVal(i, 1) & "_" & myVal(i, 2) & "_" & myVal(i, 5)