• ベストアンサー

Excelの関数で求めたいのですが・・・

入金一覧表を作成しています。お客様からの入金日が決まっていないので毎月月末になるとお客様のシートを一枚ずつ確認しなくてはならず、大変です。 2004/1/1~2004/1/31 の間に入金があった場合に、 金額と入金日が別シートに反映されるような関数はないでしょうか。 よろしくお願い致します。 Microsoft Excel2002を使用しています。

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

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

欠点もありますが、関数式に似せた作りにして見ました。 (準備)VBEの標準モジュールに Function fnd(a, b, c) bgn = a.Row gen = c.Row lst = a.End(xlDown).Row n = gen - bgn + 1 cl = a.Column f = 0 For i = bgn To lst If Cells(i, cl) = b Then f = f + 1 If f = n Then fnd = i Exit Function End If End If Next i fnd = "" End Function をコピーし貼りつける。 fndはそういう名の私製関数を作っています。 (例データ)A1:C15に 2004/1/4 山田組 20000 2004/1/5 小川商工 3000 2004/1/6 小熊商店 5300 2004/1/7 山田組 23400 2004/1/8 小川商工 38000 2004/1/9 川島建設 12000 2004/1/10 太田産業 8200 2004/1/11 山田組 5730 2004/1/12 太田産業 3000 2004/1/13 山田歯科 1000 2004/1/14 大山塗装 20000 2004/1/15 山田組 4510 2004/1/16 京と着物 11100 2004/1/17 東京地所 89200 2004/1/18 名古屋製本 9000 (関数式) 同一シートのE1に関数式=OFFSET($A$1,fnd($B$1:$B$15,"山田組",D1)-1,0)をいれる。 E2以下へ式を複写する。 F1に=OFFSET($A$1,fnd($B$1:$B$15,"山田組",E1)-1,1)をいれる。 F2以下へ式を複写する。 G1に関数式=OFFSET($A$1,fnd($B$1:$B$15,"山田組",F1)-1,2)をいれる。G2以下行へ式を複写する。 これら3列の式は最後の引数が0,1,2と変っているだけ。山田組は山田組の入っているセル番地$B$1でも良い。 (結果) E1:G4に 2004年1月4日 山田組 20000 2004年1月7日 山田組 23400 2004年1月11日 山田組 5730 2004年1月15日 山田組 4510 が出ます。G列は書式・表示形式を数値にすること。 結果が出たら形式を選択して貼りつけ-値で式を消す。 #Value!はISERRORを使って出さないようにできる。(略)

hyuganatsu
質問者

お礼

ありがとうございます。 何度かやってみたのですが初めてVBAをしているためか なかなか上手くいきません。 時間をきちんと取って理解しながらTRYしていきます。

その他の回答 (2)

  • esprei
  • ベストアンサー率56% (718/1271)
回答No.2

面倒ですが単純なやり方として、こういうやり方があります。 お客様のブック(仮にブック1とします)と一覧表ブック(ブック2とします) この二つのブックを開きます。 メニューのウインドウから整列を出して左右を選択してOKします。 これで2つのブックが左右に並んで表示されます。 次にブック2の入金日欄をクリックして=を記入。 次にブック1の入金日欄をクリックしてEnter。 ブック2の入金日欄には次の数式が入ります。 =[ブック1]シート名!$入金日セル名 これでお客様ブックの入金日欄に入金日を入力すると、一覧表にも反映されます。 ただ一つ一つ設定していくのは面倒かも。

hyuganatsu
質問者

お礼

ありがとうございます。 確かに出来ました。 でも800件近いのできついです…。 V LOOKUP関数やIF関数でどうにかできないか、 と思考錯誤してみたのですがダメなのです…

  • macbain
  • ベストアンサー率37% (147/391)
回答No.1

 もともとあるシートはどんな構成・レイアウトになっているんでしょうか?

hyuganatsu
質問者

補足

お客様一覧表のブックがり、一人づつにハイパーリンクが設定されていて、それぞれ一人ずつのブックが参照できるようになっています。 入金表の構成は 入金日 振込先  金額  という様な感じです。 よろしくお願いいたします。