• ベストアンサー

エクセルの関数について

エクセルの関数について 入金管理表(例1)を作成し、顧客を入力すると、別に作成してあるリスト(例2)を見て同じ顧客名の支払い日を入金管理表のE列に表示させたいのですが、どんな関数式を用いれば可能でしょうか? どなたか教えてください。よろしくお願いいたします。

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

  • ベストアンサー
  • don9don9
  • ベストアンサー率47% (299/624)
回答No.5

No.3です。 Excelでは、日付の1900/1/1と数値の1がイコールになります。 同様に、1900/1/2と2、1900/1/3と3、…がイコールになります。 要するに日付は 「1900/1/1を1日目として、そこから数えて何日目にあたるか」 の数値として内部的に処理されているわけです。 ですから数値の「15」を入力して、セルの書式を日付に変えると 見かけ上「1900/1/15」になります。 日付の「2010/2/15」を入力して、セルの書式を標準や数値に変えると 見かけ上「40224」になります。 ですから、私の回答の場合はQ列とR列の書式を日付に変えればいいです。 (作業列なのでそのままでもかまわないですが) No.2さんの回答の場合は逆に書式を標準か数値に変えればいいです。

chizu777
質問者

お礼

セルの書式設定を数値にして直りました。ありがとうございました。

その他の回答 (4)

  • minosennin
  • ベストアンサー率71% (1366/1910)
回答No.4

#2です。 E列の書式設定を「数値」に変更してみてください。 現在は、書式設定が「日付」の設定になっているため「1900/1/15」のような表示になっています。

  • don9don9
  • ベストアンサー率47% (299/624)
回答No.3

表示させたい入金予定日は、何年何月何日といった具体的な日付ですよね? (「月末」「20日」などではなく、「2009/12/31」「2010/1/20」など) であれば、VLOOKUP関数で顧客ごとの支払日を引くだけではなく それと売上日から入金予定日を計算しなければなりません。 もし「月末」「20日」などで十分であるなら、以下は読み飛ばしてください。 仮に「売上日以降の、直近の支払日」を計算するとします。 作業列を3列使います(P,Q,R列を使うとします) 作業列無しでも出来なくはないですが、式がややこしくなるので… P3に =VLOOKUP(D3,例2!$A$1:$B$3,2,FALSE) ※「例2!$A$1:$B$3」の部分は、別リストの範囲ですので適宜変更してください これを最終行まで複写します。 これでこの列には、支払日のパターンが入ります。(月末なら31、20日なら20など) Q3に =IF(MONTH(D3)<>MONTH(DATE(YEAR(D3),MONTH(D3),P3)),DATE(YEAR(D3),MONTH(D3)+1,0),DATE(YEAR(D3),MONTH(D3),P3)) これを最終行まで複写します。 これでこの列には、売上日と同月の支払日が入ります。 なぜこのような計算をしているかというと、月末の日付は 年月によって28日~31日の間で変動するからです。 R3に =IF(MONTH(D3)+1<>MONTH(DATE(YEAR(D3),MONTH(D3)+1,P3)),DATE(YEAR(D3),MONTH(D3)+2,0),DATE(YEAR(D3),MONTH(D3)+1,P3)) これを最終行まで複写します。 これでこの列には、売上日の翌月の支払日が入ります。 最後に入金予定日のセル(E3)には =IF(D3<=Q3,Q3,R3) これを最終行まで複写します。

chizu777
質問者

補足

回答ありがとうございます。 連絡が遅くなってしまったこと深くお詫びいたします。 早速教えていただいた通り試してみました。 Q列には、「40193」R列には「40224」という数字が入りますが、これでよいのでしょうか? 私には算出されたこの数字の意味が理解できないのですが・・??? ただ、確かにE列には、次月の支払い日が出てきます。

  • minosennin
  • ベストアンサー率71% (1366/1910)
回答No.2

例2はsheet名「例2」にあるものとして 例1のE3に =VLOOKUP(B3,例2!$A$2:$B$999,2,FALSE) と入力し下へ必要するドラッグ。 なお、式中の「999」はデータ件数により適宜変更してください。

chizu777
質問者

補足

回答ありがとうございます。 連絡が遅くなってしまったこと深くお詫びいたします。 早速教えていただいた通り試してみました。 シンプルでわかりやすかったです。 ただ、E列に1900/1/15(参照:例2シートのB列15の場合)となります。 どうして1900になってしまうのでしょうか?

  • sumer45
  • ベストアンサー率17% (52/294)
回答No.1

vlookup

chizu777
質問者

お礼

回答ありがとうございます。 連絡が遅くなってしまったこと深くお詫びいたします。 「VLOOKUP」関数を使用すれば良いようですね。 早速試してみます。

関連するQ&A

  • エクセルで2段階でリストからの選択入力したい

    エクセル2013で添付のようにSheet1のB列に顧客名、D列からR列まで行方向にその顧客の製品名が入力された表(顧客リスト)から、Sheet2の入力表のE列でリストから社名を選択したら、その社名に対応する製品名をF列でリストから選択入力できるようにしたいのです。 最初はINDEX関数とMACH関数の組み合わせで何とかと思ったのですが、名前の定義を使えば社名を選択したら直接製品名が選択できるように出来ると思ったのですが顧客が増えてきたら、不要の顧客名を削除したり、上書きしたらリストが崩れることに気づきました。 (顧客リストは毎月入力時に上書きしないとリストが長くなる一方で、リストから選択するより直接入力する方が簡単になってしまいます) 上記の問題を解消して、顧客リストを上書き、削除しても正しく選択できるようにならないでしょうか? 最初の思惑と違ってずいぶんハードルの高い内容になってしまい、回答いただいても当方に使えるかどうかも自信がなくなっていますがよろしくお願いします。

  • エクセル関数

    エクセルで顧客リストを作成していて年齢も入力してあるのですが集計作業で、0歳代が何人、10代が何人と人数を出せる関数を教えてほしいです

  • エクセル関数について

    エクセルで顧客名簿を作っています。 「顧客名(個人名)」「会社名」「住所」「電話番号」などを横軸にとって、縦に顧客(個人名)毎に入力しています。 完成した表で、何社入力したか数えたいのです。 顧客(個人名)毎に入力しているので、同じ会社名がいっぱいある状態です。その会社名を重複せずに、何社あるのか関数で求めたいのです。 よろしくお願いします。

  • エクセルの関数の設定の仕方を教えてください。

    エクセルで電話対応履歴を作ろうとしています。 顧客リストがすでに存在しているので、それを利用して、データを抽出したいと思っています。 同一BooK内に、シートA(電話対応履歴用のシート)と、シートB(顧客リストのシート)を入れました。 電話対応履歴の項目の基本情報部分を顧客リストから抽出して入力したいと思っています。 シートAにシートBにある項目の一部を表示できるセルを設定しています。 シートAの名称部分に対応相手の名前を入力し、入力した文字列をシートBの顧客名の列から検索して、一致するものがあれば、その文字列と一致した行にある別の項目を表示して、一致しない場合は、新しくデータ入力できるように、空欄にしておくという形にすればいいと思っています。 IF、LOOKUPなどの関数を利用したらいいことまではわかっているのですが、どうやってつなげれば、正しく表示されるのかがわかりません。ネット上の説明を見たりしているのですが、エラーになってしまい、顧客リストにある情報を入力しても、エラーのままです。 並べ方が悪いのだとは思うのですが、どのように複数の関数をつなげて使えばいいかがわかりません。 できれば、例でかまわないので、並べ方を教えてください。 参考できる並べ方がわかれば、応用できると思うのでよろしくお願いします。 基本的に自己流でいろいろいじって覚えるぐらいの知識しかありませんが、何とか自分で作成して電話対応を自分でうまく処理したいと思っています。 どうかよろしくお願いします。

  • エクセルの関数を教えて下さい。

    顧客管理表を作成しており、全顧客のうち、実際に売上につながっている顧客数が知りたいです。 A列に顧客名(重複している顧客複数あり) B列に対象サービス C列に売上 A列    B列     C列 顧客a  eサービス  3000円 顧客b  fサービス  2000円 顧客c  gサービス  0円 顧客d  hサービス  1000円 顧客a  fサービス  2000円 顧客a  gサービス  1000円

  • エクセル2003及び2010の関数の使い方

    エクセルで月ごとの予定表を作成しています。 B列 2行目に今年の数字2014、月はE列1行目予定の表は、B列3行目に日、C列3行目に曜日、D列3行目、E列3行目、F列3行目の3列のセルを結合して予定を記入しています。 B列4行目より関数を下記の通り作成しています。 今年の年は、B2に記入しています。 =DATEVALUE(B2&”/”&E1&”/1”)によりE1に月の数字1とか2を入力すると自動的に C4に曜日が出力されるようにしましたが、これで良いのでしょうか。 またD E Fの結合したところに定期の水曜日なら休館日とか月曜日なら10時からとか出力するにはどの関数を作成すればよいのか、エクセル2003と2010それぞれ、教えて下さい。 宜しくお願いします。

  • INDIRECT関数とVLOOKUP関数について

    ざっくりとしたものに作り直しておりますが、図のようなExcelのシートを作成しています。 「科目」の欄にはINDIRECT関数を利用したリストを作成しており、 E列のセルに、科目で選択したシート分のドロップダウンリストが表示されるようになっています。 今回、頭を悩ませているのは、B列のセルに「業者名」を入力するのですが、 INDIRECT関数を利用している各シートには担当業者が入力されているので、 E列にリストから商品を選択したら、担当業者が自動的に入力されるような関数ができないものか、 というものです。 ちなみに、 =IF($M$1="生活用品",VLOOKUP($E5,生活用品一覧!$B$2:$D$255,2,FALSE),"") という関数を試しに入れてみたら、当たり前ですが、「科目」が”生活用品”となっているときだけ 対応できるのですが、科目が変わってしまったら使えません。 検索の仕方が悪いのか、そもそもそんなことはできないのか。 どなたか教えて頂けたら大変助かります。 宜しくお願い申し上げます。

  • エクセル関数で可能でしたら教えてください

    教えてください。 社内での評価表を作成しておりますが下記のようなことがエクセルで作成可能でしょうか?    A    B    C       基準点  評価   点数    1  8 2  6    ○    6 3  4 4  2 (1)Bの列でドロップダウンリストを作成し、「○」「 」を選択。 (2)「○」の時にC列にA列の基準点を入力。 (3)「 」の時は空欄のまま。 ドロップダウンリストまでは作成済みなのですが、エクセル関数が苦手で作成の可否も解らず質問させていただきます。 御手数ですがご教示頂けないでしょうか。 宜しくお願い致します。 ちなみにエクセル2013を使用しております。

  • エクセルの抽出関数について

    簡単なエクセルで月次試算表を作成しています。 ・・・・ 〇月〇日 鉛筆購入100円/現金支払100円 〇月△日 電話代3000円/預金から支払3000円       ・・・こんなかたちで作成しています。 こんな形で作成しているんですが、別なシートにこの「現金支払」のもの(勘定科目)だけを抽出した表(台帳)を作成したいのです。 エクセルにはオートフィルタ機能があるのは知っているのですが、これだと元本となる表(データ)をじかに加工しちゃうようなので、あまりこの機能は使いたくありません。できれば、条件式を入力して作成できるエクセル関数を使いたいのですが、そのような関数ってありますか?あれば、それを教えていただきたいのです。 手元にエクセルの参考になる書籍もなくて困ってます。 アドバイスのほど、よろしくお願いします。なお、エクセル2000を使用しています。  

  • エクセル関数

    こんにちは。早速質問です。エクセルで以下のことが出来ますか? シート1に購入先(A)ごとに購入物(B)と購入地域(C)を表にしています。例、   A  B  C 1 甲社 みかん 愛媛 2 甲社 りんご 青森 3 乙社 本マグロ 青森 4 丙社 カキ 広島 このシート1をDBとしてシート2は日々購入したリストを作成 例   A   B   C   D  E 1 12/1 みかん 200個 () () 2 12/2 りんご 150個 () () 3 12/3 みかん 100個 () () 4 12/3 カキ  50個 () () 5 12/4 本マグロ 1本 () () このD列に先ほどのシート1から購入地域、E列に購入先が自動で入力される関数ありませんか?

専門家に質問してみよう