• ベストアンサー

Excelで別のファイルへ自動的に入力

あるAのファイルに日付・建物番号・建物名称・部屋番号を入力したら、別のBのファイルの「その」建物番号・建物名称・部屋番号の行の最後のセルに、日付を自動的に入力されるようにはできますでしょうか? 出来るのでしたらBのファイルのセルにはどんな関数を入れたらいいかを教えていただけると助かります。 よろしくお願い致します。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.5

#04に補足していただいたシート構成にして試してみました。 下記の式を >B.xlsのシートが >     A列      B列   C列     D列 >1行目 建物番号  建物名 部屋番号  日付 >2行目 A001    ○○荘  101     >3行目 A001    ○○荘  102 >4行目 A001    ○○荘  103 のD2セルに貼り付けて「セルの書式」を日付にします。その上で下方向にコピーします。 =IF(MAX(INDEX(([A.xls]SheetA!$B$2:$B$100=A2)*([A.xls]SheetA!$C$2:$C$100=B2)*([A.xls]SheetA!$D$2:$D$100=C2)*ROW($A$2:$A$100),))=0,"",INDEX([A.xls]SheetA!$A$1:$A$100,MAX(INDEX(([A.xls]SheetA!$B$2:$B$100=A2)*([A.xls]SheetA!$C$2:$C$100=B2)*([A.xls]SheetA!$D$2:$D$100=C2)*ROW($A$2:$A$100),)))) 私の環境では >A.xlsで12行目に2007/3/24  A001 ○○荘 101と入力したタイミングで 2007/03/24 が表示されました。すみませんが上記式でお試しいただけませんか。なおブック名のA.xlsと、ブックAのシート名(SheetA)は実際の名前に置換してください

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.4

#02です。先の式だとA.xlsで日付が入っていない場合に1900/1/0になるので、空白で表示するようにしました。(その分式が長くなりましたが)。なおB.xlsのL列の書式は日付にしてください。 =IF(INDEX([A.xls]Sheet1!$A$1:$A$5000,MAX(INDEX(([A.xls]Sheet1!$B$2:$B$5000=E2)*([A.xls]Sheet1!$C$2:$C$5000=F2)*([A.xls]Sheet1!$D$2:$D$5000=G2)*ROW($E$2:$E$5000),)))=0,"",INDEX([A.xls]Sheet1!$A$1:$A$5000,MAX(INDEX(([A.xls]Sheet1!$B$2:$B$5000=E2)*([A.xls]Sheet1!$C$2:$C$5000=F2)*([A.xls]Sheet1!$D$2:$D$5000=G2)*ROW($E$2:$E$5000),)))) もし建物番号と建物名、部屋番号の3つで比較しなくても、建物番号と部屋番号だけでユニークになるなら多少式は短くなります。 =IF(INDEX([A.xls]Sheet1!$A$1:$A$5000,MAX(INDEX(([A.xls]Sheet1!$B$2:$B$5000=E2)*([A.xls]Sheet1!$D$2:$D$5000=G2)*ROW($E$2:$E$5000),)))=0,"",INDEX([A.xls]Sheet1!$A$1:$A$5000,MAX(INDEX(([A.xls]Sheet1!$B$2:$B$5000=E2)*([A.xls]Sheet1!$D$2:$D$5000=G2)*ROW($E$2:$E$5000),))))

dlx_xlb_qlo_olp
質問者

補足

お世話になっております。 残念ながらできておりません。 A.xlsのSheet1が      A列     B列     C列   D列 8行目 日付    建物番号  建物名 部屋番号  9行目 2007/3/21 E001    ◎◎荘  101 10行目 2007/3/21 B002     ××荘  104 11行目 2007/3/22 D002     △△荘  203 の構成で、 7行目までは他の事が入力されています。 B.xlsのシートが      A列   B列  C列    D列 1行目 建物番号  建物名 部屋番号  日付 2行目 A001    ○○荘  101     3行目 A001    ○○荘  102 4行目 A001    ○○荘  103 [A.xls]はファイル名、Sheet1はシート名で置換ですよね? A.xlsで12行目に2007/3/24  A001 ○○荘 101と 入力したらB.xlsのD列2行目に2007/3/24と入力されるようにしたいのです。 いかがでしょうか?

すると、全ての回答が全文表示されます。
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

#02です。書きかけを投稿してしまいました A.xlsのデータは建物番号・建物名称・部屋番号でユニークになりますか?(言い換えると、建物番号・建物名称・部屋番号が全て同じになる行は1行だけですか?)。その前提で回答します。 A.xlsのSheet1が      A列     B列     C列   D列 1行目 日付    建物番号  建物名 部屋番号  2行目 2007/3/21 A001    ○○荘  101 の構成で、 B.xlsのシートが      A列      B列   C列    D列 1行目 建物番号  建物名 部屋番号  2行目 A001    ○○荘  101 のとき、D2セルに入れる式は =INDEX([A.xls]Sheet1!$A$1:$A$100,MAX(INDEX(([A.xls]Sheet1!$B$2:$B$100=A2)*([A.xls]Sheet1!$C$2:$C$100=B2)*([A.xls]Sheet1!$D$2:$D$100=C2)*ROW($A$2:$A$100),))) になります。D2セルを下方向にコピーしてください。 なお式中ではA.xlsのデータ範囲は100行目までとしています。もっと多いのなら「置換ウィザード」で100を大きな数値に変更して下さい

dlx_xlb_qlo_olp
質問者

補足

すみません B.xlsのシートの方を A列~D列ではなくE列~H列として 式をかえていただけますでしょうか? お手数ですがよろしくお願い致します。 それから100→5000にしていただけますでしょうか?

すると、全ての回答が全文表示されます。
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

A.xlsのデータは建物番号・建物名称・部屋番号でユニークになりますか?(言い換えると、建物番号・建物名称・部屋番号が全て同じになる行は1行だけですか?) A.xlsのSheet1が      A列    B列    C列   D列 1行目 日付    建物番号  建物名 部屋番号  2行目 2007/3/21 A001    ○○荘  101 の構成で B.xlsのシートが

dlx_xlb_qlo_olp
質問者

お礼

はい!! 1行だけです。 1度あったらもう2度目はないです。

すると、全ての回答が全文表示されます。
回答No.1

Bファイルの自動入力させたいセルに「=」で、後はAファイルのセルを指定すれば良し。 次からBファイルを開いたときに「更新する」をクリックすればOK。

dlx_xlb_qlo_olp
質問者

お礼

説明不足ですみません。 でもAのファイルに日付や建物番号・建物名称・部屋番号を入れるのはいつ、ある建物のある部屋を入力するのかが分からないので指定することができません。 意味わかりますかね? いつその部屋が入力されるかわからないのです。 だからAファイルのセルを指定することができないのです。 でしたら無理ですかね?

すると、全ての回答が全文表示されます。

関連するQ&A