EXCELでファイル名の追加・削除をチェックする方法

このQ&Aのポイント
  • 毎月のデータベースで、ファイル名が追加・削除されることがあります。
  • 手動で一つずつチェックするのは手間がかかりますので、関数を利用して結果を出したいです。
  • もし関数が難しい場合は、EXCELVBAでも教えていただけると助かります。
回答を見る
  • ベストアンサー

EXCELで二つのデータ間に追加・削除項目があるかの結果

毎月のデータベースで、ファイル名(英数字10~20文字)が追加されたり削除されたりすることがあります。 このため、100件のあるファイル名を一件ずつチェックするのが手間がかかるので、関数(IF?)を利用して結果を出したいのです。 ※関数が難しい場合、EXCELVBAにも可能でしたら教えて下さい。 よろしくお願いいたします。 質問がございましたら、ご連絡下さい。 ★イメージ★ ---------------------------------------- 【Sheet1】10月分       A   │ B(列)    ┌─────┼────   1│ファイル名│    ├─────┼────   2│A    │   3│B    │   4│E    │   5│D    │   6│C    │   :   (行) ---------------------------------------- ---------------------------------------- 【Sheet2】11月分       A     │ B(列)    ┌───────┼────   1│ファイル名  │    ├───────┼────   2│B      │   3│A      │   4│F      │   5│D      │   6│G      │   7│E      │   :    <結果>    ┌───────┼───────   20│追加ファイル名│削除ファイル名    ├───────┼───────   21│F      │C      ←数式を入れる    │:(他にあれば)│:(他にあれば)   (行)    ※新しいシート【Sheet2】で数式(セルA21とB21)を入れ、前月分【Sheet1】に対して結果を出したい。  ※追加または削除がない場合、「ブランク」か「無し」として反映させたい。 ----------------------------------------

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

  • ベストアンサー
  • higekuman
  • ベストアンサー率19% (195/979)
回答No.1

いろんなやりかたがあると思いますし、マクロを使えばかなり便利なものを作れると思いますが、マクロを使わずに比較的簡単にやる方法の一例として。 しかも、両方のファイル名をソートした上に、「追加または削除がない場合、「ブランク」か「無し」として反映させたい。」という要望には応えられませんが。 Sheet1のB2に =MATCH(A2,Sheet2!$A$2:$A$100,0) ($A$2:$A$100のところは、実際にSheet2のファイル名が書いてある範囲に変更) と書いて、下にコピー。 同様に、Sheet2のB2に =MATCH(A2,Sheet1!$A$2:$A$100,0) と書いて、下にコピー。 そうすれば、そのファイル名が相手のシートにない場合、#N/Aというエラー表示になります。 オートフィルタで#N/Aを抽出できます。 10月分のシートでエラー表示になれば、それが11月分で削除されたファイルということになりますし、 11月分のシートでエラー表示になれば、それが11月分で追加されたファイルということになります。

wym34221
質問者

お礼

早々なご回答ありがとうございます。 参考になりました! すぐ見つけられますし助かりました。

関連するQ&A

  • エクセルの空白を詰めて別シートに表示

    sheet1のデータを参照して、空白を詰めてsheet2へ表示させたいんです! sheet1(元データになるもの)  A列 |B列|C列・・・ 1行目A|100|100 2行目B|  |200 3行目C|100| 4行目D|  |200 5行目E|100| 6行目F|  |100 ・ ・ sheet2(sheet1でB列に入力があるものを抽出)  A列 |B列 1行目A|100 2行目C|100 3行目E|100 sheet3(sheet1でC列に入力があるものを抽出)  A列 |B列 1行目A|100 2行目B|200 3行目D|200 4行目F|100 sheet2のA1に下記の式を入力してA列とB列に数式をコピー =IF(COUNT(Sheet1!$B$1:$B$6)<ROW(A1),"",INDEX(Sheet1!A$1:A$6,SMALL(IF(Sheet1!$B$1:$B$6<>"",ROW($A$1:$A$6)),ROW(A1)))) すると下記のように表示されます。 A1=A     B1=100 A2=#NUM! B2=#NUM! A3=#NUM! B3=#NUM! 4行目から空白 sheet2のA2のところにエラーが出ていますが、「関数の引数」のところで「数式の結果」には「100」と 正解が表示されています。(B2、A3、B3も同様に)数式の結果のところには正解が表示されています。 答えの「#NUM!」のところに正解を表示させるには、どうしたらいいですか? 見よう見まねでつくったのもで。。。関数にあまり詳しくありません。 よろしくお願い致します。

  • エクセルの参照行の挿入による追加と行の削除に対応できる関数を教えてくだ

    エクセルの参照行の挿入による追加と行の削除に対応できる関数を教えてください。 sheet1を印刷用ページ、sheet2をデータ用ページとしています。 sheet2は頻繁に追加や削除をするのですが、単純な =sheet1!A1 ですと、 sheet2に追加してもsheet1に追加されたデータが反映されない。 sheet2の行を1つでも削除するとsheet1のその行は#REF!というエラーに。 という状態です。下記内容に対応できる関数はあるでしょうか。 sheet2がこのような時 行  A あ B い C う D え sheet2Dに「お」を挿入すると sheet1がこのようになるように。 行  A あ B い C う D お E え また、B行を削除したらsheet1が 行  A あ B う C え となるように。 そして、可能ならばコピーのドラッグで複製できるようにしたいのですが・・・ 条件が色々ありますが、よろしくお願いします。

  • エクセル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列(結果)を 貼り付けたいです。

  • データのない所の結果を空白にしたいです

    グーグルスプレッドシートを使用しています。 エクセルの関数と同じだと思いまして、こちらで質問させていただきましたことご了承くださいませ。 ABCシートとXYZシートがあります。 XYZシートにはABCシートを参照して関数を書いています。 意図していない結果が出るのは「XYZシートの計算結果」の16行目~21行目です。 ABCシートの中のデータの無い所の計算結果で問題が発生しています。 データのないところは空白としたいのですがどのようにすれば良いかアドバイス頂けないでしょうか。 以下、ファイルを共有していますがイメージも本質問に添付させていただきました。 https://docs.google.com/spreadsheets/d/1wOPzf0FNeUgPqxtZzouf23E1SlcNBO0-cDkkpidn3d0/edit?usp=sharing ●ABCシートの内容です。 A列1行目,B列1行目 1行目です,B列2行目です 2行目です,B列3行目です 3行目です,B列4行目です 4行目です,B列5行目です 5行目です,B列6行目です 6行目です,B列7行目です 7行目です,B列8行目です 8行目です,B列9行目です 9行目です,B列10行目です 10行目です,B列11行目です 11行目です,B列12行目です 12行目です,B列13行目です 13行目です,B列14行目です 14行目です,B列15行目です ●XYZシートの計算結果です。 A列1行目,B列1行目 13行目です,B列14行目です 14行目です,B列15行目です 11行目です,B列12行目です 12行目です,B列13行目です 9行目です,B列10行目です 10行目です,B列11行目です 7行目です,B列8行目です 8行目です,B列9行目です 5行目です,B列6行目です 6行目です,B列7行目です 3行目です,B列4行目です 4行目です,B列5行目です 1行目です,B列2行目です 2行目です,B列3行目です #REF!,#REF! A列1行目,B列1行目 #REF!,#REF! #REF!,#REF! #REF!,#REF! #REF!,#REF! ●XYZシートの関数です A2には =OFFSET(ABC!$A$1,COUNTA(ABC!$A:$A)-ROW()+MOD(ROW(A2),2)*2,COLUMN()-1) B2には =OFFSET(ABC!$A$1,COUNTA(ABC!$A:$A)-ROW()+MOD(ROW(B2),2)*2,COLUMN()-1) と記載しています。以降 A3には =OFFSET(ABC!$A$1,COUNTA(ABC!$A:$A)-ROW()+MOD(ROW(A3),2)*2,COLUMN()-1) B3には =OFFSET(ABC!$A$1,COUNTA(ABC!$A:$A)-ROW()+MOD(ROW(B3),2)*2,COLUMN()-1) 以降、関数の中の (A3)(B3)の所が (A4)(B4) (A5)(B5) と変化しています。 データのないところは空白としたい場合にどのように関数を書けば良いのかアドバイス頂けないでしょうか? 恐れ入りますがよろしくお願いいたします。

  • エクセル:数式の結合

    お世話になります。 A1セルに =B1 A2セルに =B2+C2 A3セルに =B3+C3+D3 ・・・ という式があるとします。 ここにそれぞれのF列の数式を追加したいと思います。 A1セル =B1+(F1の数式) A2セル =B2+C2+(F2の数式) A3セル =B3+C3+D3+(F3の数式) ・・・ となるようにしたいのですがどのようにすればよろしいでしょうか? 結果だけであれば足し合わせればよいのですが数式を書き換えたいというのが希望です。 (最終的にはA列の数式とF列の数式をあわせてひとつの列にしてしまいたいのです) 置換や関数ではどのようにしたらいいかわかりませんでした。 (マクロは手を出したことがありません) 文字列の結合ならCONCANTATE関数でできるのですが中の数式をうまく結合するには・・・ と考えていっても無理でした。 すみませんがお教えください。

  • Excel 参照行の削除でも可変しない関数

    Excel 参照行の削除でも可変しない関数 同じ形式で、数シートにわたり入力された文字をまとめた表を別のシート(シート1)に作成しています。 シート2以降の参照元データーは一定のルールで入力されていますが、削除や追加が頻繁に行われます。削除や追加の度にシート1B列・C列の関数が参照する行数が追随して可変しないようにしたいのですが可能でしょうか。 具体的には、シート2において6行目から9行目を削除した際に、シート1では「B2=みかん」/「C2=イチゴ」と繰り上がり、B行・C行は常に指定した行を参照するようにしたいと思っています。 <シート1>  A B     C 1 タイトル りんご  ばなな (← 3行目) 2 タイトル かき   なし   (← 8行目) 3 タイトル みかん イチゴ (←13行目) ・B列:「=IF(ISERROR('Sheet2'!$B3:$B3),"",'Sheet2'!$B3:$B3)」 ・C列:「=IF(ISERROR('Sheet2'!$D3:$D3),"",'Sheet2'!$D3:$D3)」 <シート2、3…> 参照したいセルは、B列とD列の3行目、8行目、13行目…と一定の間隔で入力されており、全てのシートにおいて同じ箇所に入力されています。 シートごとにカテゴリーの個数は(図A1:E4までを1カテゴリーと考えています)異なり、作業の度にカテゴリーの追加や削除が頻繁にあります。 うまく説明できているか不安ですが、良い方法を教えてください。

  • エクセルで項目抽出

    sheet1のB列に「あ」と入っている行のF列の数字 のなかで、 sheet1のF列が1番大きい数字を取り出すようにしたいのですが、 下の2式をどういうようにつなげればいいのか、わかりません。 =INDEX(sheet1!F:F,MATCH("あ",sheet1!B:B,0)) =INDEX(sheet1!F:F,MATCH(LARGE(sheet1!F:F,1),sheet1!F:F,0)) どうすればうまくいくでしょうか? 調べてみて、AND関数などいろいろと使ってやってみたんですが、うまくいきませんでした。 回答御願いします。

  • 関数で対応が可能でしょうか?

    次のような、エクセル表で、関数(IF関数?)を使って、コピーが出来ますか? <sheet1>    A列    B列  C列  D列  E列  F列  ・・・ 1行 タイトル1  1 2行 数式1        2 3行 タイトル2          3 4行 数式2                4 5行                       タイトル1をコピー 6行                       数式1をコピー 7行                       タイトル2をコピー 8行                       数式2をコピー (1)B1=1 且つ C2=2 のとき、A1のタイトル1をF5にコピー (2)B1=1 且つ C2=2 のとき、A2の数式1をF6にコピー (3)D3=3 且つ E4=4 のとき、A3のタイトル2をF7にコピー (4)D3=3 且つ E4=4 のとき、A4の数式2をF8にコピー

  • Excelデータ比較

    エクセルにおいて、sheet2のA列、B列、C列をsheet1のA列、B列、C列と比較して、一致した場合sheet2のD列に書かれている納入先企業名を下記のように自動入力したいのですが、どうやってsheet2のD列に関数を組めばよいのか分からないので教えてください! 【sheet1】 A列 B列 C列 D列 1行 001 AAAA 部品1 A社 2行 002 BBBB 部品2 B社 3行 003 CCCC 部品3 C社 4行 004 DDDD 部品4 D社 5行 005 EEEE 部品5 E社 6行 006 FFFF 部品6 F社 7行 007 GGGG 部品7 G社 【sheet2】 A列 B列 C列 D列←この列に取引先企業が入るようにする 1行 001 AAAA 部品1 A社←sheet1にあるのでA社と入る 2行 008 HHHH 部品8 #N/A←sheet1にないので#N/Aとなる 3行 004 DDDD 部品4 D社 4行 009 IIII 部品9 #N/A 5行 005 EEEE 部品5 E社 6行 002 BBBB 部品2 B社 7行 010 HHHH 部品10 #N/A

  • EXCEL2003でロックされたセルを含む行の削除、追加を許可したい

    EXCEL2003で、以下の表を作りました。 ・200行50列。50列うち40列は数式。リストになっている。 ・数式でない10列のみ、ロックをはずし、シートの保護をかけた。 この表で、保護したまま、以下の操作を許可したいのですが、可能でしょうか? ・ロックされたセルを含む、行の削除 ・行の追加時に、ロックされた列に数式の自動コピー  (リストになっているので、保護解除状態ではコピーされます) 数式をいじられたくないだけなので、行の追加削除は自由にさせたいのです。 EXCELのバージョンアップをしたら可能になったりしますでしょうか? ご回答、よろしくお願い致します。