• ベストアンサー

Dictionaryを使い4つの条件の一致で2つの集計列を集計したいのです

条件4項目 日付&単位&単価&区分(A列、C列、D列、F列)の一致するもののB列及びE列を集計して別シートに書き出したいのです。  sheet1 A   B   C   D   E   F 日付  数   単位  単価  計   区分 3/12  2    人  10000 20000  通常 3/12  1    人  10000 10000  通常 3/12  1    時間  2000 10000  残業 3/14  4    時間  2000  8000  残業 3/15  4    人  10000 40000  通常 このような表を sheet2 A   B   C   D   E   F 日付 数 単位 単価 計 区分 3/12  3    人  10000 30000  通常 3/12  1    時間  2000 10000  残業 3/14  4    時間  2000  8000  残業 3/15  4    人  10000 40000  通常 のようにまとめたいのです。 Dictionaryを用い、A列、C列、D列、F列を一旦結合しkeyとし、同じものが登録されていたら、itemとしてB列及びE列の値を加算させて、登録件数分を書き出しという流れでやりたいのですが、出来ません。 助けて下さい。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.4

/qa4512348.html の続きですか? その情報をリンク貼っておけば回答側の参考にもなったと思いますよ。 >DictionaryのItemには追加時に連番をふりながら(その連番を)Indexとしてセットし、 >『集計&転記用の配列を別に用意』し、 >Indexでその配列への加算位置を指定してあげるほうが簡単かもしれません。 と書いてたでしょう。 Sub try_3()   Dim dic As Object 'Dictionary用   Dim s  As String 'キー文字列結合用   Dim key As Variant 'key列用   Dim ary As Variant '集計列用   Dim c  As Variant '配列Loop用   Dim v  As Variant '元データ格納用配列   Dim w  As Variant 'データ集計・書き出し用配列   Dim n  As Long  '配列の要素index用   Dim i  As Long   Dim j  As Long   key = Array(1, 3, 4, 6) 'key列   ary = Array(2, 5)    '集計列   With ThisWorkbook     v = .Sheets("sheet1").Range("A1").CurrentRegion '.Resize(, 6)     ReDim w(1 To UBound(v, 1), 1 To UBound(v, 2))     Set dic = CreateObject("Scripting.Dictionary")     n = 0     For i = 1 To UBound(v)       'キー文字列 s として結合       s = ""       For Each c In key         s = s & v(i, c) & vbTab       Next       If dic.Exists(s) Then         '既登録ならindexを取得         j = dic(s)       Else         '未登録ならindexを追加         n = n + 1         dic(s) = n         j = n         '未登録なら書き出し用配列 w にkey列をセット         For Each c In key           w(j, c) = v(i, c)         Next       End If       '書き出し用配列 w に集計列を加算       For Each c In ary         w(j, c) = w(j, c) + v(i, c)       Next     Next     With .Sheets("sheet2")       .UsedRange.ClearContents       .Range("A1").Resize(n, UBound(w, 2)).Value = w     End With   End With   Set dic = Nothing End Sub 前回のコードでも、keyを増やして key1 key2 key3 key4 集計1 集計2 日付 単位 単価 区分 数   計 の順で書き出した後に、列を入れ替えればよかったんじゃないですか? #以下、既に実施済みでしたら読み飛ばしてください。 コードを理解するには、ただ眺めるだけじゃなく、VBE[F8]キーで1ステップずつ実行するのが効果的です。 その時[ローカルウィンドウ]を表示させて、変数や配列への格納のされ方も確認してくださいね。

yokokama46
質問者

お礼

end-uさん。今戻りました。バッチリです。 しかしまだまだ ReDim w(1 To UBound(v, 1), 1 To UBound(v, 2))の部分が私にとって鬼門です。配列の要素数の再定義 この部分をしっかり理解しないと、一気に出来ず、Dictionaryを2回使ったりしなければならなくなりそうです。この部分を勉強させてもらいます。

yokokama46
質問者

補足

 end-uさん最近はお世話になりっぱなしです。 全てend-uさんのおっしゃる通りです。じつは前回のコードで、keyを増やして key1 key2 key3 key4 集計1 集計2 日付 単位 単価 区分 数   計 の順で書き出した後に、列を入れ替えて書き出して動かしてました。(下記のコードで入れ替え。)  vntData_2 = Columns("B").Value vntData_3 = Columns("C").Value vntData_4 = Columns("D").Value vntData_5 = Columns("E").Value vntData_6 = Columns("F").Value Columns("B").Value = vntData_5 Columns("C").Value = vntData_2 Columns("D").Value = vntData_3 Columns("E").Value = vntData_6 Columns("F").Value = vntData_4 しかし、少し時間(列入れ替え時)かかるのと、今回は入れ替えの無いパターンなので、前は作れたのに、時間が経って忘れてしまったのか、今回は単純なパターンなのにつまづいてしまったのは、基礎が、身に付いてなかったせいと思い、そこでまた皆様のお力をお借りしたのでした。本当に忘れないようにします。私は、出張が多いので、本当にお世話になりまくりのend-uさんには、何かお土産でも渡したいと思ってます(心から)なにかよい方法(メールアドレス等)でも教えてもらえれば幸いです。今また出かけなければならないので、ここのお礼は、後ほど必ずいたします。YOKOKAMA46

その他の回答 (4)

  • end-u
  • ベストアンサー率79% (496/625)
回答No.5

#4補足に対するレスを入れておきます。 (もしかしたら削除対象回答に該当するかもしれませんが、事務局のご判断におまかせします。) お礼についてはお気持ちだけで充分です。お気になさらず。 回答側の立場で投稿してますが、私も勉強になる事が多いです。 回答者というより利用者という感覚で、Q&Aをケーススタディとして勉強させてもらってます。 それに http://help.okwave.jp/okwave/beginner/beginner.html 『OKWaveは利用者の方々からの「質問」と「回答」を通し、世の中のあらゆる問題の解決と、人と人の相互協力のリレーション作りを目指すQ&Aサイトです。』 とあるように、『相互協力』ですから、利用者各個人の得意分野を補完し合っていけば良いのだと思います。 直接私に対してではなくとも、貴方も誰かのお役に立たれているはずです。 そういった連鎖関係の中でお互いが得していると考えておけば良いんじゃないでしょうか。 それはこれから先の事でも構わないし、このコミュニティ内に限った事でもないと思います。 他、今後気をつけたほうがいい事として1点、アドバイスです。 今一度、『■禁止事項ガイドライン』に眼を通されておかれたほうが良いでしょう。 http://help.okwave.jp/okwave/beginner/prohibition.html 会員間の直接のやり取りを促すような記述は削除・編集の対象となっています。 私もメールアドレスなどを公開するつもりはありませんし、前述したように、何か物的なものをお受けするつもりはさらさらありません。 (かといって、補足にお書きになった事で気分を害しているわけでもありません。本当に、お気持ちだけ嬉しくお受け致します^ ^) 本来は、このレスも『指摘回答』だと判断されて削除対象になるかもしれませんが、私からもお礼の気持ちが伝わればと思って書きました。 では、今後ともよろしくお願いします。お互いにこのコミュニティを通して、問題解決やスキルアップができれば良いですネ。

yokokama46
質問者

お礼

end-uさん。有難うございます。 おっしゃるとおり今まで KenKen-SPさん、n-junさん、onlyromさん、redfox63さん,そしてend-uさん、そのほかの方々 色々な方にお世話になっております。OKWAVEには感謝しております。 end-uさんには特にお世話になっている回数が多いのと私のプロフィールに書いてある通り、以前の私の質問に(締切済み)追加でメール頂いた件は、内容もその後の私の悩みにドンピシャだったので非常に助かった思いがありました。そこで今回のような発言だったのですが、禁止事項ガイドラインにふれるのですね。無念です。それではせめて、end-uさんのご多幸を祈らせて頂くことにとどめます。 またお手数かけることも多いとは思いますが今後もよろしくお願いいたします。yokokama46

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

Excel(エクセル) VBA入門:Dictionaryオブジェクトを利用する http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_dictionary.html 【Dictionaryオブジェクトを作成する】 ”・ところが、A列の品名が重複していると、~” と言う所が参考になるのでは?

yokokama46
質問者

お礼

n-junさん返事遅れてすみません。以前n-junさんから頂いたコードのシンプル版なので、end-uさんへの補足に述べさせて頂いたとおり、n-junさんから頂いたコードを最後に列の入れ替えをして、対応は出来たのですが、入れ替え無いパターンは(ただし集計列1列)自分でも出来ていたので、集計列2列にも挑戦したのですが、撃沈でした。そこでn-junさんから頂いたコードを最後に列の入れ替えをする対応で済ます予定でしたが、せっかくだから基本を覚えようと思ったしだいです。n-junさんは色々なかたに幅広く答えていらっしゃいますし私も何度かお世話になっております。重ねてお礼申し上げます。 またよろしくお願いします。yokokama46

yokokama46
質問者

補足

n-junさん 以前も助けて頂きました。今回もまたお手数かけます。 以前もDictionaryを用い似たような集計(条件列と集計列が書き出し時に一部入れ替えがあるので、集計列をaryで示すという方法でした) 今回は書き出し時にレイアウト変更がないのですが、基本を押さえてなかったようで、自分でうまくいきません。 ご提示のページも参考にさせていただきましたが、4条件を結合は下記でよいと思いますが、その先の2つのアイテム追加のしかたと、出来たとしても書き出し時がいまいち解りません。これを機に今一度Dictionaryの勉強をしますので、なにとぞご教示のほどよろしくお願いします。 myVal = sh1.Range("F1", sh1.Range("A" & sh1.Rows.Count).End(xlUp)).Value Set myDic = CreateObject("Scripting.Dictionary") For i = 2 To UBound(myVal, 1) End If myVal2 = myVal(i, 1) & "_" & myVal(i, 3) & "_" & myVal(i, 4) & "_" & myVal(i, 6) If Not myVal2 = "_" & "_" & "_" Then If myDic.exists(myVal2) Then

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

エクセルVBAを、どれほどこなせるレベルか知ら無いが、Dictionaryなどの凝った仕組みを使わずとも、普通のVBA(ソート法などで)簡単に出来るよ。Dictionaryの練習問題ならいざ知らず、ベテランはなるべく単純な使い慣れた仕組みを使うと思う。 Dictionaryを使いこなせるレベルなら、デバッグなど自力で出来る力が有るはずだ。 Googleででも「VBScript dictionary」で照会でもして、たくさん出る記事の適当なものを読みましたか。 ーーー 文字列を結合したKeyを作るとき、定桁結合式にしないと、おかしくなることが有ることを注意してますか。 ーーー 私の言うやり方でやってみる。 IFと代入しか使ってない。質問者は、他シート参照がなれているかな。 ただしロジックは易しいと思うが、先人のロジックで、長く使い続けて慣れた面はある。 例データ ソート後 日付 数 単位 単価 計 区分 3月12日 1 時間 2000 10000 残業 3月12日 2 人 10000 20000 通常 3月12日 1 人 10000 10000 通常 3月12日 4 人 10000 10000 通常 3月12日 2 人 10000 20000 通常 3月14日 4 時間 2000 8000 残業 3月14日 2 人 10000 20000 通常 3月15日 4 人 10000 40000 通常 3月15日 1 人 20000 20000 通常 3月15日 2 人 20000 20000 通常 ーー コード Sub test01() Dim sh1, sh2 As Worksheet Set sh1 = Worksheets("Sheet2") Set sh2 = Worksheets("Sheet3") d = sh1.Range("A65536").End(xlUp).Row MsgBox d k = 2: t1 = 0: t2 = 0 m1 = sh1.Cells(2, "A"): m2 = sh1.Cells(2, "C"): m3 = sh1.Cells(2, "D"): m4 = sh1.Cells(2, "F") '--- For i = 2 To d If sh1.Cells(i, "A") = m1 And sh1.Cells(i, "C") = m2 And sh1.Cells(i, "D") = m3 And sh1.Cells(i, "F") = m4 Then t1 = t1 + sh1.Cells(i, "B") t2 = t2 + sh1.Cells(i, "E") Else sh2.Cells(k, "A") = m1 sh2.Cells(k, "B") = t1 sh2.Cells(k, "C") = m2 sh2.Cells(k, "D") = m3 sh2.Cells(k, "E") = t2 sh2.Cells(k, "F") = m4 k = k + 1 m1 = sh1.Cells(i, "A"): m2 = sh1.Cells(i, "C"): m3 = sh1.Cells(i, "D"): m4 = sh1.Cells(i, "F") t1 = sh1.Cells(i, "B") t2 = sh1.Cells(i, "E") End If Next i sh2.Cells(k, "A") = m1 sh2.Cells(k, "B") = t1 sh2.Cells(k, "C") = m2 sh2.Cells(k, "D") = m3 sh2.Cells(k, "E") = t2 sh2.Cells(k, "F") = m4 End Sub ーーー 結果 日付 数 単位 単価 計 区分 2009/3/12 1 時間 2000 10000 残業 2009/3/12 9 人 10000 60000 通常 2009/3/14 4 時間 2000 8000 残業 2009/3/14 2 人 10000 20000 通常 2009/3/15 4 人 10000 40000 通常 2009/3/15 3 人 20000 40000 通常 第1行見出しは、元のシートの見出し行をコピー貼り付けする。

yokokama46
質問者

補足

imogasiさん。急用で出かけてまして今戻りました。返事遅れてすいません。出かける直前に、最後のend-uさんのコードを試させて頂き動きました。imogasiさんのは今試させていただいたのですが、imogasiさんの例示とその結果のようになればよいのですが、なぜか、同項目同士の累計がなされませんでした。(累計なくまったく同じものが転記される)。もしかしたら私のミスかもしれませんのでお気を悪くせずに今後もよろしくお願いします。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

まずはできているものを提示なさっては? また、どのようにうまくいかないのでしょうか?

yokokama46
質問者

補足

fujillinさん初めまして。最初に返事頂いたのに諸事情により、返事遅れてすみませんでした。やりたかったことと途中までのコードは、n-junさんへの解答のとうりでした。色んな方のお力をお借りしてばかりの私なので今後ともよろしくお願いします。

関連するQ&A

  • 条件がある列の集計の仕方

    数字が入っている列にもうひとつ条件をつけてその合計を求めたいのですが、関数が成り立ちません・・。 A列 B列 C列 D列 A  1      3 B  10  W  10 C  10      1 D  1   W  22  E  5      7 F  5   W 33 B列=1で、C列<>W(C列=0でもいいのかな?)のD列の合計を求めたいのです。 例の答えは、1=3 10=1 5=7となるようにです。 よろしくお願いします。

  • エクセルで、2つの条件に一致する値を返す方法 教えてください

    A B C D E F 1 日付 分数 2 Aさん Bさん Cさん Aさん Bさん Cさん 3 3/2 2/12 3/15 9 10 10 4 3/4 2/12 3/15 2 3 3 5 3/4 2/12 3/15 30 30 30 6 3/3 2/12 3/15 1 1 2 7 3/4 2/12 3/15 3 5 4 8 3/4 2/12 3/15 29 29 29 上記の表より 列A,B,Cは日付 列D,E,Fは分数です ・3行目のG列にD3:F3の範囲で最小値であり、A3:C3の範囲で最新の日付(最大値)である時の 日付を表示したい。 G3のセルを下に引っ張り各行ごとに値を表示したいです。 関数(式)を教えてください。

  • EXCELのDSUM関数で集計条件に日付を入れると数字が消える

        B列      C列     D列   E列      F列      G列 1行  日付      区分    金額   集計する条件 2   2000/1/1   A社   1000    区分     日付      日付 3   2000/1/10    B社    500   A社    >=2000/1/1  <2000/2/1 4   2000/1/15    A社    300    5   2000/2/5   A社     200    集計結果 6                        =DSUM(B1:D5,3,E2:G3) 上記のような表をEXCELで作成しました そのうちA社の1/1~1/31の金額をDSUM関数を利用して集計したく 上記のようにDSUM関数に引数を入力しました しかし集計条件が区分のみ(E2:E3)だとA社の2/5までの合計額1500が反映するのですが、日付を入れた途端に0になってしまうのです ちなみに、一例として日付→商品区分に直して日付の代わりに 「機械」「部品」といった文字を入力してみると ちゃんと条件通りの集計をしてくれます 日付の入力のしかたに間違いがあるのでしょうか? テキスト見ながらちゃんとやってると思いこんでるだけで 落とし穴にはまってるのだと思います 是非良きアドバイスをお願いします  

  • Excelで複数条件に一致するものをカウントしたい。

    ●AシートのB列にあるCという文字を含み且つD列にあるEという文字を含むものをFシートにカウントしたい場合の関数はどうしたらいぃのでしょうか?

  • 一気にdictionaryで飛び飛びの複数列をkeyとして集計し別BOOKに縦横並び替えしたい

    元BOOK Sheet1~Sheet30前後(どのシートも記入内容は違うが同じ構成)   A   H   I    J   K   L   M   N   O 1 コード 数  単位 単価 分類  数  単位 単価 分類 2 J-1  1   時間 1000   B   1  時間 1500  C 3 K-1  1   名  20000  A   2  時間 1000  B 4 J-1  2   名  15000  A   3  時間 1000  B 先BOOK 元BOOKと同じシート枚数だが横の要素を縦に並び替えるため行数は増える(列数は並び替えにより減るが、計の1列だけが新規に増加)   A   B   C    D    E    F   1 コード 数  単位 単価   計   分類   2 J-1  2   名   15000  30000  A 3     4   時間  1000  4000   B 4     1   時間  1500  1500   C 5 K-1  1   名   20000  20000  A 6     2   時間  1000  2000   B  望みは元BOOKをシート別にコードごとに集計し、抽出結果を先BOOKに元BOOKのシート別に書き出したいのです。  例ではHIJK、LMNOの各4列が1セットで(数、単位、単価、分類)2セット例示してますが、実際にはPQRSも加え3セットです。(空欄のセットもあります)  実際の表は、1行目は見出しで、縦方向は300行位の表です。横方向は40列位あります。(コードは各シート各行ともA列で、数、単位、単価、分類のセットは連続した4列で1セットで、各シート各行ともH列スタートで3セット連続しています←HIJK、LMNO、PQRS)  コードにたいして横方向に列挙されているセットの要素をコード別に縦方向に並び替えをしたいのですが、(元BOOKのセットの空欄は不要で1行1セットにしたい)その際にコードと単位、単価、分類の4つが一致するものの数を合算し、その合算された数量と単価を掛けて単価の右隣に記入し、そのさらに右隣に分類を書き戻す。また元BOOKの各SheetのA列の途中には空欄の行はなく、同行内の横方向のセット同士で合算されるものはありません。  一般的なdictionaryの使い方は理解しております。よってdictionaryでA列のコードに単位、単価、分類を&"-"&で結合し文字列にしたものをkeyとし、数をitemをにして合算する。Splitでkeyを戻す?のようなイメージのみあるのですが、列方向に3要素有るのでdictionaryの廻し方と、並び替えが解りません。さらに出来れば、コードごとでの並び替えを分類を基準に優先順位を持たせたいのです。例示ではABC順ですが実際は様々な言葉ですので ソート順を ary = (ああ,い,けこ,うお)のように配列で書き込んでおく等で対処出来ればいいなと思う次第です。 本当にわがままだらけで申し訳なく思っております。しかしながら、段階的手法、もしくは、断片的でも非常に助かりますので何卒お助けくださいませ。気長にお待ちしております。よろしくお願い致します。

  • EXCELで2つ条件で1つが部分一致のとき

    Excelの2003バージョンです。 現在使用しているファイル名「会社」シート名「支社」のセルE12に 同じシート上のD12(同じ行ですね)と ファイル名「埼玉」シート名「データ」のA列の中の値と一致(完全一致)して なおかつ、シート名「支社」のF3の値(例・後1、後2)とシート名「データ」の C列の値(例・後1 第23号)と部分一致をした時に 使用中シート「支社」のE12に●、していない時は空白にしたいのです。 ファイル「会社」シート名「支社」 行数 --A列----B列----C列-----D列----E列----F列---- 1                             11223344  (ここに関数)  後1 ファイル「埼玉」シート名「データ」 行数 --A列----B列----C列-----D列----E列----F列---- 10   11223344         後1 第23号  11   11223344         一般会社 第44号  のような場合はE1に●になるようにしたいのです。 それ以外は空白で。 あまり詳しくないので、よろしくお願いします。

  • エクセル 複数条件一致したセルの抽出方法について

    はじめまして。 エクセルの複数条件で一致するセルの抽出方法の質問が幾つかありましたので 参考に試してみましたが上手く計算することができなくて、投稿致しました。 問題が解決すると非常に助かりますので、教えて頂けますでしょうか。 質問内容 エクセル2007を使用しております。 同じ商品を複数社で購入する場合、単価が異なります。 購入先と商品名で一致した場合に単価が参照されるようにしたいです 2つのシート使用しており、1つは■データベースシート、1つは●入力シートとなってます。 ■データベースシートの項目は A列    B列   C列   D列   E列    F列 購入先  〔※〕  〔※〕  品名   〔※〕   単価 AA社             みかん       1,000 BB社            みかん       1,500 CC社            みかん        700 CC社             いちご        5,000 DD社              いちご        3,500 〔※〕B・C・E列にも項目がありますが、質問(単価参照)とは関連がありません。 この項目は他のデータと使うことがありますので、削除や他の列に移動をしない方法が希望です。 ●入力シートの項目も同じです。 A列    B列   C列    D列    E列     F列 購入先  〔※〕  〔※〕   品名    〔※〕    単価 【 (1) 】           【 (2) 】          《 (3) 》 (3)に関数を入力されるように組みたいです。(1)と(2)を入力すると ■データベースシートの「F列」の単価が参照されるイメージです。 分かり難い質問で申し訳ありません。お知恵を頂けますと助かりますので 何卒宜しくお願い致します。 以上

  • エクセルVBAで2つの条件が一致すれば結果を転記

    エクセルVBAの書き方を教えてください。 以下3つのエクセルファイルがあります。 ・F依頼(使うSheet:ナンバリング ・F結果(使うSheet:OKリスト ・F回答(使うSheet: F結果の「OKリスト」シートのA列3行目に結果が入っています。     A列         B列     C列 3行目 OK(結果)    12345678    9012 F依頼の「ナンバリング」シートには、過去からの番号が書き続けられています。     A列      B列     C列     D列 2行目 日付    12345678    9012    OK(結果) OKリストのB&Cの12桁をナンバリングシートのB&Cから検索し 一致するものがあれば、ナンバリングシートのD列(結果)にOKリストのA列(結果)を 貼り付けたいです。

  • エクセルで集計

    エクセルでの合計について教えていただきたいのです。 A1~A10000まで日付が、B1~B10000まで数値が入力されています。 B列の数値を50行ごとに合計し、C列に表示する方法。 現在は、sum関数で手作業です。 簡単に表示できる方法を教えてください。 また、C列に合計のある行をD列(D1・D2・D3・・・)、E列(E1・E2・E3・・・)、F列(F1・F2・F3・・・)に並べたいのです。(50行ごとに間引いて表示するような感じです) 現在は、=C50・=C100・=C150のように手作業です。 もっと多量のデータが入力されたシートもあります。また、100行ごと150行ごとなど合計行が違う場合もあります。 エクセル初心者です。 よろしくお願いいたします。

  • Excel 複数条件一致による文字列取得

    途中まで作成してみましたが、できなかったのでお教え願います。 (1)シート<入力用>に以下のように入力されています。 ┃ ┃A ┃B   ┃C  ┃D     ┃E     ┃  ━━━━━━━━━━━━━━━━━━━━━━━ ┃1┃日付┃社員番号┃休暇等┃業務開始時間┃業務終了時間┃ ┃2┃0926┃11111111┃休  ┃      ┃      ┃ ┃3┃0927┃11111111┃直  ┃8:30    ┃17:30    ┃ ┃4┃0928┃11111111┃   ┃8:30    ┃18:30    ┃ ┃5┃0926┃22222222┃研  ┃8:30    ┃17:30    ┃ といった状態で約120名のランダムなデータがべた打ちされてます。 (2)(1)を以下のような集計表に飛ばしたいのです。   ┃ ┃A   ┃B ┃C ┃D ┃E ┃・・・・・・ ━━━━━━━━━━━━━━━━━━━━━━━ ┃1┃    ┃0926┃0927┃0928┃0929┃・・・・・・ ┃2┃11111111┃休 ┃直 ┃  ┃・・・・・・ ┃3┃22222222┃研 ┃  ┃  ┃・・・・・・ ┃4┃33333333┃・ ┃・ ┃  ┃・・・・・・ ┃5┃44444444┃・ ┃・ ┃  ┃・・・・・・ 行:日付 列:社員番号 飛ばしたい情報は、(1)の<休暇等>文字列です。 ためしに、(2)のB2に以下の式を入れてみました。 B2=index(入力用!A2:E5,match(B1,入力用!A2:A5,0),match(A2,入力用!B2:B5,0)) 当然ですが、日にちが帰ってきました。が、なぜか0927が帰ってきました。 このINDEXとMATCHを利用して(1)のC2:C5にある文字列を拾えないでしょうか? 宜しくお願いいたします。

専門家に質問してみよう