人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセル2007で質問です。
「注文」というファイルと「出荷」というファイルの2つがあります。
注文ファイルには、A列=注文を受けた日付、B列=注文した人の名前、が並んでいます。
出荷ファイルには、A列=出荷番号、B列=注文した人の名前(これは注文ファイルのB列から本日出荷した人のみ抽出されてます)が並んでいます。

出荷ファイルのC列に、B列の人が注文した日付を表示させたいのですが、何かいい方法はないでしょうか?
たぶん関数を使えばできそうな気がするのですが、あまり詳しくないので教えてください。



●質問者: ipsa
●カテゴリ:コンピュータ 学習・教育
✍キーワード:エクセル ファイル 名前 抽出 本日
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● joruno
●25ポイント

B列の注文した人の名前というのが、重複しないと仮定した場合、

VLOOKUP関数を使えばできると思います。


ただし、注文ファイルのA列とB列を入れ替えなけばいけませんが。

出荷ファイルのC列1行目の式

=VLOOKUP(B1,[注文ファイルのbook名]シート名!A1:B65536,2,0)


名前が同じもので紐付けて、隣の行の値を示すという感じです。

しかし、

注文した人の名前が重複した場合、一番上の行のものが表示されるため、

使えません。

◎質問者からの返答

ありがとうございます。


2 ● kn1967
●40ポイント

注文.xlsの注文主sheet

A B
1 受注日 注文主
2 12月1日 瀬能ナツル
3 12月1日 美嶋紅音
4 12月2日 三郷雫
5 12月2日 近堂水琴
6 12月3日 沙倉楓

出荷.xlsの出荷sheet

A B C
1 出荷番号 注文主 注文日
2 1201 瀬能ナツル =INDEX('[注文.xls]注文主'!$A:$A,MATCH(B2,'[注文.xls]注文主'!$B:$B,0),1)
3 1202 三郷雫 ↓ 下方向コピー
4 1203 美嶋紅音 ↓ 下方向コピー

※出荷sheetのC列は日付型にしておかないと、

日付をあらわす内部データ(数値)が表示されたりします。

※上記以外の関数を使った方法も存在しますので、あくまでも一例です。

◎質問者からの返答

ありがとうございます。


3 ● Gay_Yahng
●25ポイント

注文ファイルのC2に

=A2

C2を下にコピー

出荷ファイルのC2に

=VLOOKUP(B2,注文!B:C,2,FALSE)

C2を下にコピー

で、どうでしょう?

ただ、この方法だと一人の人が何回も注文を出しているとうまくいきません。

◎質問者からの返答

ありがとうございます。


4 ● そうや
●0ポイント

さあーぼくも


5 ● SALINGER
●30ポイント

応用編ということで、一人で何回も注文している場合や同姓同名に対応するために、

本日から遡って注文ファイルの近い日を返す関数も作れるということで紹介しておきます。


仕様は、id:kn1967 さんのブック名シート名表と同じです。

出荷ファイルは本日出荷した人が記入されるということで日付ごとになっているので、見出しに日付のセルがあると思います。

無ければ日付のセルを用意し、左上のボックスに「日付」と入力して名前を付けてください。

次に、C2セルの数式を

=日付-MIN(IF(([注文.xls]注文主!$B$2:$B$1000=B2)*([注文.xls]注文主!$A$2:$A$1000<=日付),日付-[注文.xls]注文主!$A$2:$A$1000,1000))

と入力し、Ctrl+Shift+Enterを押して{}で囲み配列数式にします。

後は下方向にオートフィルすればいいです。

※式中の1000は十分大きな数字の意味です。注文ファイルの行数以上にしてください。

◎質問者からの返答

ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ