マンガでよめる痔のこと・薬のこと

エクセルで5つのブックの最新データを別のブックにまとめたい。
5人の担当者が、並行してデータ入力しているブックがあります。
セルの配置や項目は一緒です。
各担当者は、データを日々継ぎ足ししており、
そのデータを別のブックに日々、集約していきたいのです。

継ぎ足される順序は、問いません。
重複や漏れがなければ、OKです。

都度、コピペしていけば良いのですが、
各担当が入力完成時にマクロ等でボタン一発でいけたら幸いです。

ちなみにそれぞれのブックは、共有フォルダ内で作業しています。
1データ20項目で文字と数字主体で、関数等は含まれません。
それぞれの担当者に通し番号データもあります。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

今日わ



まず、やってもらいたい事があります。

共有フォルダに、次に二つのフォルダを作ってください。
更新前フォルダ
更新済フォルダ

更新ブックの処理

前提

一行目は、見出しである
A列Zまでを転記する
A列は必ず、記入する
AA列は、転記状況の表示に用いる

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim ttt As String
Dim i As Long
Dim j As Long
Dim k As Long

' ttt = "ファイルのパス"... \\xxx\xxx\転記前フォルダ
' コンピュータ名 = Environ("COMPUTERNAME")
ttt = ThisWorkbook.Path

i = Cells(Rows.Count, "A").End(xlUp).Row
j = Cells(Rows.Count, "AA").End(xlUp).Row
If i = j Then Exit Sub

Workbooks.Add
ThisWorkbook.Sheets("Sheet1").Range("A1:Z1").Copy _
ActiveWorkbook.Sheets(1).Range("A1")
ThisWorkbook.Sheets("Sheet1").Cells(j + 1, 1).Resize(i - j, 26).Copy _
ActiveWorkbook.Sheets(1).Range("A2")
ActiveWorkbook.SaveAs ttt & "\" & _
Format(Now, "yyyymmddhhmmss") & _
Environ("COMPUTERNAME") & ".xls"
ActiveWorkbook.Close
For k = j + 1 To i
ThisWorkbook.Sheets("Sheet1").Range("AA" & k).Value = _
"済 この行は削除してもいいです。"
Next k

End Sub


集約ブックの処理

言葉で、もっと詳しく書きます。解らなければ、もう一度質問してください。

ワークブックオープンの処理です。

まず、共有フォルダの更新前フォルダに、ブックがあるかどうか調べます。
ブックが有ったら、以下の処理をします

ブックを開きます。
そのブックの、Sheets(1)の二行目から最終行まで、AからZまでの列をコピーします。
集約ブックに、追加貼り付けします。
更新前フォルダから今開いたブックを更新済フォルダにセーブします。
更新前フォルダから今開いたブックを削除します。

更新前フォルダにあるブック数だけ繰り返します。

終わりです。
    • good
    • 0
この回答へのお礼

ki-aaa様、
とても丁寧な説明ありがとうございます。

おそらく、指示通り実施できれば使えるのだろうと思うのですが、
私自身のスキルの問題でできそうにありません。
不甲斐ないです。勉強します。
いろいろ、細かく指示いただいたのに申し訳ありません。

返事が遅れ、申し訳ありませんでした。

お礼日時:2010/06/28 13:32

#1です。

MS Queryが使えないと意味がないですが、
参考となるリンクを張っておきます。
Chiquilinさんのサイト
http://www.geocities.jp/chiquilin_site/data/0703 …

Microsoft Query を使用して外部データを取り出す
http://office.microsoft.com/ja-jp/excel-help/HA0 …

UNION ALL としなくてもフィールドを結合すればでよいのかもしれない。(未検証)
http://www.ie.reitaku-u.ac.jp/~ykago/lectures/db …
    • good
    • 0
この回答へのお礼

再度、お調べいただきありがとうございます。
何個か試してみたのですが、仕様の問題?でだめでした。
申し訳ございません。

お礼日時:2010/06/28 13:29

更新ブックの処理


  
Workbook_BeforeSaveのイベントを使います。
入力したデータを新しいブックに書き出します。
ブック名は、YYYYMMDDhhmmss & "担当者名" とします。
入力ブックに一列、追加します。
その列に、済 この行は削除可能です。 とでも入力します。

集約ブックの処理

Workbook_Openのイベントを使います。
更新ブックのYYYYMMDDhhmmss*を読み込み、集約ブックに転記します。
更新ブックを消すか、名前を変えます。

これでどうでしょう。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。

なんか、いけそうなんですが、
もう少し、噛み砕いて教えていただけると幸いです。

VBAも素人なんで、WEBで調べながらやってみたんですけど
今ひとつ要領がつかめなくて...

申し訳ありません。
よろしくお願いします。

お礼日時:2010/06/25 16:14

Excel2003/2002なら MSクエリのSQLでSelect文をUNION ALL で連結していけば取り出せるんじゃないかなあ。


データ - 外部データの取り込み - 新しいデータベースクエリ
Excel Filers*
[OK]
データベースの[▼]から5つ分テーブルを追加しておく
ひとつのブック分の必要なフィールドを追加したら、SQLを表示させ、メモ帳にコピペ
いったん、追加したフィールを空にし別のブックの同じフィールドを追加。
SQLを表示させ、メモ帳にの一番下に「UNION ALL」を追加後、コピペ。
繰り返し。
メモ帳にコピーしたものをMSQueryに貼り付け。
MSQueryからExcelへ
クエリの更新を時間で設定したり、データ自体を保存しないことも可能です。

# Excel2007は挑戦してません
# Excel2000は手元にありません

この回答への補足

すいません、それ以前に2002なんですが、クエリを使えない仕様になっていました。
会社の規制みたいです。

補足日時:2010/06/25 12:41
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。

複雑ですね~(私のレベルには)
もっと単純にできるものだと思ってました。
厳しい...

お礼日時:2010/06/25 12:26

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q複数の同じフォーマットのファイルを新しいブックで一つのシートにまとめる方法

仕事で、各部署から送られてきた、同じフォーマットのファイル(シート1にのみデータ有)が50個近くあります。
それを新しいブックで一つのシートにまとめなくてはいけません。
地道にコピペするのは時間がかかるのでマクロで処理を行いたいと思います。
マクロでの処理方法ご存知の方、処理方法の載っているサイトをご存知の方、もしくはマクロより簡単な方法がありましたら教えてください。

あと、逆に一つのシートをいくつかのファイルに振り分けていく方法もご存知でしたら教えて下さい。
よろしくお願いします。

Aベストアンサー

すみません。質問を勘違いしていました。
>新しいブックで一つのシートにまとめなくてはいけません
でしたね。
Sub Sample1()
Dim buf As String, i As Long
Dim j
buf = Dir(Sheets("Sheet1").Range("A1").Value & "\*.xls")
Do While buf <> ""
Workbooks.Open Worksheets("Sheet1").Range("A1").Value & "\" & buf
Sheets("Sheet1").Range("A1:J1000").Copy
ThisWorkbook.Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Workbooks(buf).Activate
Application.CutCopyMode = False
Workbooks(buf).Close SaveChanges:=False
buf = Dir()
Loop
End Sub
で試してみてください。使い方などは
http://oshiete1.goo.ne.jp/qa4225063.html
を参照してみてください。同じ質問があったので気がつきました。

すみません。質問を勘違いしていました。
>新しいブックで一つのシートにまとめなくてはいけません
でしたね。
Sub Sample1()
Dim buf As String, i As Long
Dim j
buf = Dir(Sheets("Sheet1").Range("A1").Value & "\*.xls")
Do While buf <> ""
Workbooks.Open Worksheets("Sheet1").Range("A1").Value & "\" & buf
Sheets("Sheet1").Range("A1:J1000").Copy
ThisWorkbook.Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
Workbooks(buf).Activate
Application.CutCop...続きを読む

Qエクセルで多数のシートをまとめる方法

エクセルで10以上あるシートを一発でひとつにまとめる方法はあるでしょうか?

コピー&ペーストを繰り返すしかないのでしょうか…

仕事で明日やらなければならないので、
お分かりになる方、是非教えてください!

Aベストアンサー

まぁ既出回答にもあるように,10数回程度コピー貼り付けすることで,どうという作業ではないとは思います。

さておき。
ご利用のエクセルのバージョンが不明ですが,ご利用のOfficeのバージョンによっては

1.ワードを起動する
2.挿入のファイルからエクセルブックを指定する
3.添付図のようなダイアログが表示されたらラッキー成功です,ブック全体を指定して挿入する
4.Ctrl+Aで全体を選び,コピーして,エクセルの新しいシートに貼り付ける

と一発でできます。
添付図のようにならなかったときは,出来ません。

QExcelの複数ファイルの内容を一つのファイルに集計する方法について教

Excelの複数ファイルの内容を一つのファイルに集計する方法について教えてください。
各支店からの報告を集計したいのですが、同一フォームのファイル(約100ファイル)で報告されるデータを一つのファイルに集計したいと思っています。
A支店ファイルのsheet1、B支店ファイルのsheet1、・・・・を、合計ファイルのsheet1に集約したいのです。(フォームは同じで、内容は数値のみです。)
いい方法がある方、お教えください。

Aベストアンサー

フォルダー内の全エクセルファイルのデータを1シートにまとめるVBAのコードはWeb検索すれば、種々みつかります。下記はコードの若干の解説もあって良いと思います。
http://hpcgi1.nifty.com/kenzo30/b_cbbs/cbbs.cgi?mode=al2&namber=39812&no=0&P=R&KLOG=266
問題は、「同一フォーム」の内容ですね。
データ中に各支店名が含まれていなければ、抽出時に付与しないと訳が分からなくなるし、
変に凝った様式だと単純にコピーするだけではうまくいかないし。

QExel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数ではなく、マクロで処理を希望します。

自分では、部品表の商品番号をコピーして、コード一覧表で検索し、検索結果の右隣のセル(B列のコード)の値を部品表のC列に貼り付ければよいかと思い、書いてみたんですが…

Sub 別ブックから貼り付ける()
  Dim 検索する As Long
Windows("部品表.xls").Activate
検索する = cells(i,2).Value
Windows("コード一覧表.xls").Activate
ActiveWindow.SmallScroll Down:=-3
Selection.AutoFilter Field:=3, Criteria1:="=検索する", Operator:= xlAnd

と、してみたものの、検索しても、その検索結果の隣のセルのコードをどうやって取得すればいいのかが、わかりませんでした。

基本事項は本で学びましたが、呪文のようなコードはよく理解できません。懸命にネットで検索して、訳して理解する努力をしてはいますが。

どうぞよろしくお願いします。

部品表というブックがあります
A列に商品名、B列に商品番号が入力してあります。C列のコードは未入力です。
A列     B列     C列      
商品名  商品番号  コード
モータ  U-1325-L  
ホルダ  R-134256

また、コード一覧表という別のブックには、A列に商品番号と、B列にコードが、何千件も入力されています。

やりたいことは
部品表のC列のコード欄に、コード一覧表ブックから商品番号と一致するコードを貼り付けしたいのです。

部品表は、何百種類もありますので、関数...続きを読む

Aベストアンサー

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks.Open("C:\★★\コード一覧表.xls") '★要変更★
 I = 2
 Do While Range("A" & I).Value <> ""
  ThisWorkbook.Worksheets("Sheet1").Range("C" & I).Value = Application.VLookup(ThisWorkbook.Worksheets("Sheet1").Range("B" & I).Value, xlBook.Worksheets("Sheet1").Range("A2:B65535"), 2, 0)
  I = I + 1
 Loop
 xlBook.Close
 Application.ScreenUpdating = True
 MsgBox ("完了")
End Sub

こんにちは。
とりあえず実用性も踏まえました。
メインの動作はワークシート関数のVLOOKUPをVBA上で使用していますので理解はしやすいかと思います。
また、質問文から察するに「部品表.xls」と「コード一覧表.xls」の両方を開いて処理されていますが「コード一覧表.xls」はプログラム内で開いて閉じているので実行するときは「コード一覧表.xls」は閉じて置いてください。
Option Explicit
Sub Sample()
 Application.ScreenUpdating = False
 Dim I As Long
 Dim xlBook
 Set xlBook = Workbooks....続きを読む

Q複数のエクセルファイルからデータ抽出とまとめる方法について。

500のエクセルファイルがあり、それぞれのエクセルデータのA2からF2までのデータのをまとめた一覧表(1行目は、1枚目のエクセルファイルのA2-F2、2行目は2枚目のエクセルファイルの・・・、という感じでです)のを、新しいエクセルファイルもしくはテキストなどにでも手早く作れる方法をご存知の方、ご教授ください。コピペでやっていますが嫌になってしまいました。。マクロも触っては見たのですが、2枚目のエクセルファイルを2行目に、3枚目のエクセルファイルを3行目になどの方法の解決は思いつかず、挫折しました。よろしくお願いいたします

Aベストアンサー

対象のフォルダをcドライブの「sample」とした場合で回答します。
新規エクセルブックのシート名タブを右クリックし「コードの表示」
右側のエディタエリアに下記コードを貼り付け、実行して下さい。
G列にファイル名が入るようになっています。不要であれば
Cells(rIdx, 7).Value = fName
を削除して下さい。


Sub getA_F()
Const myPath As String = "c:\sample\"
Dim rIdx As Long
Dim fName As String
fName = Dir(myPath & "*.xls")
Do Until fName = ""
Workbooks.Open Filename:=myPath & fName
rIdx = rIdx + 1
Me.Range(Cells(rIdx, 1), Cells(rIdx, 6)).Value = ActiveSheet.Range("A2:F2").Value
Cells(rIdx, 7).Value = fName
Windows(fName).Close
fName = Dir
Loop
End Sub

対象のフォルダをcドライブの「sample」とした場合で回答します。
新規エクセルブックのシート名タブを右クリックし「コードの表示」
右側のエディタエリアに下記コードを貼り付け、実行して下さい。
G列にファイル名が入るようになっています。不要であれば
Cells(rIdx, 7).Value = fName
を削除して下さい。


Sub getA_F()
Const myPath As String = "c:\sample\"
Dim rIdx As Long
Dim fName As String
fName = Dir(myPath & "*.xls")
Do Until fName = ""
Workbooks.Open ...続きを読む

Qエクセルのクエリ テーブル結合

エクセル2000を使用しています。クエリのことがあまりよく判っていない質問かもしれませんが、外部ファイルとして以下のようなCSVファイルを2つ、クエリテーブルで結合したいのです。

 A B
1 X Y
2 X Y



 A B
1 X Z
2 X Z

を結合して

 A B C
1 X Y Z
2 X Y Z

のようにしたいのですがうまくいきません。

クエリについての超・基本的な質問かもしれませんが、ご教示頂けると助かります。宜しくお願いします。

Aベストアンサー

データ/外部データの取り込み/新しいデータベースクエリ
の事でしょうか?
この機能で、直にテキストファイルに接続する事は(XL2000では)出来ない様ですので、一旦ワークシートに読み込む必要があります。また、MsQueryで取り扱うにはフィールド名が必要です。
ご希望の事は選択クエリの基本型だと思いますが、Ms Queryはフィールド名が同じでも、自動では結合してくれない様なので、自分で結合したいフィールドをドラッグして繋ぐ必要があります。下記URLをご参照下さい。Oracleに接続する例ですが、結合するあたりは、ワークシートでも同様です。
http://www.ie.reitaku-u.ac.jp/~ykago/lectures/db/odbc/odbc03.html
時々エラーがでて、接続出来ないときがありますので、下記をご参考にしてください。
http://www.eurus.dti.ne.jp/~yoneyama/Excel/filter2.htm
なお、ADOで直接テキストファイルに接続し、SQLでレコードセットを取得する事が出来ますが、複数のテキストファイルに接続して、選択クエリが出来るのかどうか、調べてみましたが分かりませんでした。(ご存じの方がいらしたら、是非教えてください)
以上、ご参考まで。

データ/外部データの取り込み/新しいデータベースクエリ
の事でしょうか?
この機能で、直にテキストファイルに接続する事は(XL2000では)出来ない様ですので、一旦ワークシートに読み込む必要があります。また、MsQueryで取り扱うにはフィールド名が必要です。
ご希望の事は選択クエリの基本型だと思いますが、Ms Queryはフィールド名が同じでも、自動では結合してくれない様なので、自分で結合したいフィールドをドラッグして繋ぐ必要があります。下記URLをご参照下さい。Oracleに接続する例ですが、結合...続きを読む

Q複数のエクセルファイルとシートからデータ抽出したい

すみませんが教えてください!
複数のエクセルファイルがあり、それぞれに複数のシートがあります。
(ファイルによってシート数は異なります)
そのすべてのファイル/シートから、C列の最後の行のデータを抽出し、集計ファイルに書き出したいのです。
書き出しのフォーマットは3セル使用して、ファイル名、シート名、データとしたいです。
すみませんが、よろしくお願いいたします。

Aベストアンサー

集計用のブックを用意する
Sheet1のA1、B1、C1セルに「ファイル名」「シート名」「データ」と記入しておく
集計ブックを、あなたの「複数のエクセルファイル」が放り込んであるフォルダに一緒に保存しておく


改めて集計ブックを開く
ALT+F11を押す
現れた画面で挿入メニューから標準モジュールを挿入する
現れたシートに下記をコピー貼り付ける

sub macro1()
 dim myPath as string
 dim myFile as string
 dim w as worksheet

 mypath = thisworkbook.path & "\"
 myfile = dir(mypath & "*.xls*")
 application.screenupdating = false
 do until myfile = ""
  if myfile <> thisworkbook.name then
   workbooks.open mypath & myfile
   for each w in workbooks(myfile).worksheets
   with thisworkbook.worksheets("Sheet1").range("A65536").end(xlup).offset(1)
    .value = myfile
    .offset(0, 1) = w.name
    .offset(0, 2).value = w.cells(w.rows.count, "C").end(xlup).value
   end with
   next
   workbooks(myfile).close false
  end if
  myfile = dir()
 loop
 application.screenupdating = true
end sub

ファイルメニューから終了してエクセルに戻る
ALT+F8を押してマクロを実行する。

集計用のブックを用意する
Sheet1のA1、B1、C1セルに「ファイル名」「シート名」「データ」と記入しておく
集計ブックを、あなたの「複数のエクセルファイル」が放り込んであるフォルダに一緒に保存しておく


改めて集計ブックを開く
ALT+F11を押す
現れた画面で挿入メニューから標準モジュールを挿入する
現れたシートに下記をコピー貼り付ける

sub macro1()
 dim myPath as string
 dim myFile as string
 dim w as worksheet

 mypath = thisworkbook.path & "\"
 myfile = dir(mypath & "...続きを読む

Qエクセルで別ブックのセルを参照する式の内部

エクセルで別ブックのセルを参照する式の内部


別ブックのセルを参照する時は

='パス名[ブック名]シート名'!セル名

という式みたいなので、
='item\zaiko\[zaiko_2010_06_01.xls]在庫シート'!B5
という式を作りました(パスは適当です)。

それで、
='item\zaiko\[zaiko_2010_06_01.xls]在庫シート'!B5
='item\zaiko\[zaiko_2010_06_02.xls]在庫シート'!B5
='item\zaiko\[zaiko_2010_06_03.xls]在庫シート'!B5
='item\zaiko\[zaiko_2010_06_04.xls]在庫シート'!B5

と日付を連番で複数のセルに入れていきたいので、
日付の 2010_06_01 の部分を他セルから持ってきたいのですが、
この式の中に 文字列参照のMID() とかで挿入できるでしょうか?
日付の入っているセルがちょうど横の方に連番で存在しています。

分かる方いましたら教えてください。
よろしくお願いします。

エクセルで別ブックのセルを参照する式の内部


別ブックのセルを参照する時は

='パス名[ブック名]シート名'!セル名

という式みたいなので、
='item\zaiko\[zaiko_2010_06_01.xls]在庫シート'!B5
という式を作りました(パスは適当です)。

それで、
='item\zaiko\[zaiko_2010_06_01.xls]在庫シート'!B5
='item\zaiko\[zaiko_2010_06_02.xls]在庫シート'!B5
='item\zaiko\[zaiko_2010_06_03.xls]在庫シート'!B5
='item\zaiko\[zaiko_2010_06_04.xls]在庫シート'!B5

と日付を連番で複数のセルに入れていきたい...続きを読む

Aベストアンサー

=INDIRECT("''item\zaiko\[zaiko_"&A1&".xls]在庫シート'!B5")
とすれば出来ることはできますが、参照先のブックは開いている必要があります。

単に、沢山の数式を入力するのが面倒だというだけであれば、A1のセル以降に日付部分が入力してある場合、
="='item\zaiko\[zaiko_"&A1&".xls]在庫シート'!B5"
のように入力し、下へ数式をオートフィル等でコピーし、
入力した数式範囲を範囲選択→コピー→形式を選択して貼り付け→値でOKし、
範囲選択したまま、編集→置換で検索する文字列「=」、置換後の文字列「=」で置換します。

Q複数のシートにまたがるデータをひとつのシートにまとめるには(VBA)

複数のシートにまたがるリスト形式のデータをひとつのシートにまとめるにはどのようなマクロを組めばよいのでしょうか。
具体的には
(1)Sheet1のリスト形式のデータ全てをコピーする
(2)貼り付け先のシート(統合シート)に貼り付ける
(3)Sheet2のデータ全てをコピーする
(4)統合シートの最終行の次に貼り付ける
(5)残りのシートについても(3)→(4)を繰り返す

よろしくお願いします。

Aベストアンサー

"統合"という名前のシートに、他のすべてのシートのリストデータを貼り付けます。
各シートのリストはA列から始まっているものとします。(違う場合はコードを修正してください)

Sub test01()
Dim sh As Worksheet
Dim lr As Long, tlr As Long
For Each sh In Worksheets
If sh.Name <> "統合" Then
lr = sh.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
sh.Rows("1:" & lr).Copy
tlr = Sheets("統合").Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
Sheets("統合").Range("A" & tlr + 1).PasteSpecial
Application.CutCopyMode = False
End If
Next
End Sub

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい


人気Q&Aランキング