• 締切済み

また教えてください!Excelで作った表で・・・

助けてください!!  Excelで作った3つの表があります。 ※1つのファイルの中に3つのシートとして作られています。 (1)元となるデータが入っているもので、  (例) 1月1日 1,000    1月2日  500   ~    2月1日 1,500    2月2日 1,800 …と、連続した日にちと数値が入力されています。(数年分) (2) (1)の表から部分的にリンクさせて1カ月分を抜粋しています。  (例) 1月1日 =(1)!A1     1月2日 =(1)!A2 1月3日 =(1)!A3 ←多少違うかもしれませんが、こんな感じの式?を入れてデータを引っ張ってきています。 (3) (2)と同じですが、(2)に抜粋したデータの次月分が入力されています。  (例) 2月1日 =(1)!A32     2月2日 =(1)!A33 2月3日 =(1)!A34    (2)と(3)は1つ1つのデータは違うものの、表の作りとしては同じです。 (2)や(3)のような表が、すでに何カ月先の分まで それぞれシートとして作られているのですが、 その表の内容が正しいか確認したいのです。 例えば、2月のデータを表(1)から引っ張ってきたいのに  (例) 2月1日 =(1)!A32→“(1)!A31”になっている…など 違うセルが入力されていないようにしたいのです。   それで、考えたのは すでに終わった月の表は正しい式が入っているのだから、 正しい表と新しい表を比べられないか?という事です。 (回りくどくてスミマセンm(__)m) でも、引っ張ってくる元のセルが違っているので 単純に比較できず、関数にも詳しくないので、どうしたらいいのか分かりません。 間違えないように、初めからもう一度作る・・・というのはナシで、比較をして確認したい場合でお願いします。 また、比較ではなく、他に方法がありましたら教えてください。 不明な点は補足をさせていただきますので、よろしくお願いします。

みんなの回答

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

質問が長文なんですが、質問の主旨が良く伝わらないです。 「シートに関数式を自分が入れているが、自信が無く、先人の作ったものと比べて正しいかチェックしたい」ということでしょうか。 シートで、(A)式の複写を使い、規則性のある式がほとんど(B)セルごとに違う式が入っているのタイプ、に普通は分けられるが、(A)の場合はそんなに凡ミスは無く全部結果が狂うことが多いので気がつき易い。 さて式をチェックするツールみたいなのを紹介します。 シートのメニューのツール-マクロ-VBEをクリックして、VBEの画面になる。その画面のメニューの挿入-標準モジュールをクリックして標準モジュールの画面が出る。そこへ下記をコピーして貼りつける。 Sub test01() Dim cl As Range j = 1 c = Worksheets("sheet4").Range("IV1").End(xlToLeft).Column For Each cl In Selection Worksheets("sheet4").Cells(j, c + 1) = "'" & cl.Formula j = j + 1 Next End Sub この Sheet4 の部分(2箇所)を、自分の未使用の(または今、ワークシート挿入したシートの)名前で置き変える。(Sheet4がいま、未使用なら上記のままでよい。) 式をチェックしたいシートの、式の入っている範囲を範囲指定する(式が入っていないセルを含んでいても可)。 その後、タスクトレー部のVBEのアイコンをクリックし、上記プログラムコードを表示し、そのコードの途中をどこでも良いからクリックし、VBE画面のメニューの 実行-「SUB/ユーザーフォームの実行」をクリックする。 Sheet4に戻ると、範囲指定した範囲のセルの関数式が表示されているはず。 (1)まず正しいと思うシートについて実行し (2)次に自信のない方のシートの、関数の入っている範囲((1)と対応する範囲)を指定してもう一度実行する。 (1)(2)の両シートの関数式が同行の隣接列に併記されるから、Sheet4を印刷して、紙の上(机上)でじっくり両者を比較検討してください。 誤りは見つけやすいでしょう。 なお=Sheet1!A1などのSheet1の1の部分は式の複写で変化しませんから念の為。

  • 134
  • ベストアンサー率27% (162/600)
回答No.1

Sheetの構成が    A    B   1  日付   データ 2 1月1日  1,000 3 1月2日   500 となっているとして、 シート2のC2セルに =min(if(sheet1!$A$1:$B$365=A2,sheet1!$B1:$B$365,"")) と入力して、shiftとctrlを押しながら、enterを押します。 ついで、D2セルに =if(c2<>D2,"再確認","") と入力して、C2とD2の関数を下にコピーすると、確認可能になると思います。 ただし、 「$B$365」 は、最下データのセル番地です。