• 締切済み

Excelでの関連付け?結び付け…

エクセル2010使用です。 毎月増える顧客の売り上げ管理で悩んでいます。 教えて下さい。 Sheet1、Sheet2は、売り上げのシステムからエクセルで出力できる表です。 毎月少しずつ顧客が増えていますので、月次にしたときにSheet3のような表にしたいのですが どのような数式で可能でしょうか。 ■「コード」をA列、「顧客名」をB列  「売上」をC列として教えて頂きたいです。 ■顧客数は毎月増減します ■顧客登録以前の表での表し方は「―」  売上の0円だった月の表し方は「0」としたいです。 できれば関数の簡単な意味(これはSheet1の2列目を参照するための2だ)を教えて頂ければ勉強になります。 宜しくお願い致します。

みんなの回答

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.2

>Sheet1、Sheet2は、売り上げのシステムからエクセルで出力できる表です。 「売り上げのシステムからエクセルで出力できる表」? 文法が正しくないように思われます。 「売り上げシステムから出力されるExcel(CSV形式?)の元データ」 6月分が出たときはSheet3が6月分で月次集計がSheet4になるのでしょうか? 7月分が出たときはSheet4が7月分で月次集計がSheet5になるのでしょうか? >どのような数式で可能でしょうか。 VLOOKUP関数を使えば目的に合うと思いますが、1ヶ月分について1つの数式を下へコピーするのは良いのですが、4月分を右へコピーして5月分にするためにはSheet名を変更するのでINDIRECT関数で範囲を可変にする必要があるでしょう。 =IFERROR(VLOOKUP($A3,INDIRECT("Sheet"&COLUMN(A1)&"!$A:$C"),3,FALSE),"-") IFERROR関数はVLOOKUP関数で検索値が見付からないときにエラーが発生するので該当なしのとき"-"を返します。 気になることは"-"が文字列で左揃えとなり、金額は数値なので右揃えになりますので、文字列のときだけ中央揃えにすることができません。 代案として"  -"のように先頭に空白文字を挿入して中央揃えに近い表示にすることは可能です。 >できれば関数の簡単な意味(これはSheet1の2列目を参照するための2だ)を教えて頂ければ勉強になります 回答欄で長々と説明するのは如何なものかと・・・・ 関数の使い方はヘルプ機能で例題を見ながら習得することをお勧めします。

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.1

以下の制限がありますが、関数で可能です。 ・VLOOKUP関数で「得意先名」(又は「コード」)を検索対象とし集計します。 ・予め重複しない「コード」又は「得意先名」の表をSheet3に作成する必要があります。 【データの様式確認】 ▼Sheet1及びSheet2 シート名は其々、「Sheet1」「Sheet2」であるとします。 (異なる場合はSheet3シートの数式を適切に変更願います)  1行目:表タイトル「○月分」  2行目:項目名「コード、得意先名、売上高」  3~n行目:データ(列範囲:A~C列) であるとします。 【作業手順】 ▼Sheet3(別名でも可) (1)Sheet3に同様の様式で表を作成して下さい。(添付図参考) (2)以下の数式をセルC3、D3に貼付け   セルC3=IF(ISERROR(VLOOKUP($B3,Sheet1!$B:$C,2,FALSE)),"-",VLOOKUP($B3,Sheet1!$B:$C,2,FALSE))   セルD3=IF(ISERROR(VLOOKUP($B3,Sheet2!$B:$C,2,FALSE)),"-",VLOOKUP($B3,Sheet2!$B:$C,2,FALSE)) (3)セルC3、D3を範囲選択後、C商事の6行目までフィルハンドルでオートフィル 【関数説明】 ◆VLOOKUP(検索文字、対象範囲、列番号、検索方法)関数 対象範囲の左の列より検索文字で検索し、検索方法(近似一致/完全一致)で一致した行の検索範囲における左から列番号目の値を返します。 検索で一致しない場合はエラーを返します。 ◆ISERROR(値) 値がエラーであれば真(TRUE)を、エラー以外であれば偽(FALSE)を返します。 ◆IF関数(条件式、真の場合の処理、偽の場合の処理) 条件式が成立(TRUE)する場合は、真の場合を処理し、しない場合は偽の場合の処理を行います。 【数式の処理手順】 (1)VLOOKUP関数でキーとなる得意先名「$B3」を範囲「Sheet1!$B:$C」列より、完全一致検索「FALSE」し、一致した行の売上高の列である「2」番目(B列=1番目、C列=2番目)の列の値を取得します。  (5月の場合は、範囲が「Sheet2!$B:$C」になります) (2)ISERROR関数で(1)がエラーであるかを判定します。  (4月でD商事が完全一致で検索されなかった場合にエラーとなります) (3)IF関数で(2)の判定式を条件式として、処理を分岐  (2)がエラーの場合:"-"を表示  (2)がエラーでない場合:(1)を表示((1)と同じVLOOKUP関数を記述しています) 【補足事項】 ※得意先名を自動的に集約して一つの表に纏めるとの事でしたら、VBAによる処理になります。 ※Sheet1、Sheet2が異なる場合は数式内のシート名を変更ください。 ※6月、7月・・・と続く場合はシート名を適時変更し、【作業手順】の(2)(3)を繰り返してください。 ※「得意先名」が重複し、「コード」が重複しない場合はVLOOKUP関数の範囲を「$A:$C」とし、  列番号を「3」に変更してください。コードを検索対象とします。 ※検索対象の得意先名(又はコード)の増減が有る場合、月次集計のリストに得意先名(又はコード)を追加する必要があります。  (全ての月の得意先名(又はコード)を含むリストを作成する必要があります)

関連するQ&A

  • Excel 条件に一致する日付の求め方について

    こんにちは!初めて質問します。 Excel関数の使い方がわからずに困っています。 売上と在庫管理をそれぞれ別シートに入力しています。 売上が出た場合、在庫管理シートに売上日が表示されるようにしたいのです。 シートは、このような形で、それぞれデータを入力しています。 売上表シート A列  B列    C列      D列 日付  顧客名  商品コード  売上金額 在庫管理シート A列   B列     C列    D列    E列 入荷日 商品コード  商品名  売上日  売上金額 商品コードが一致する売上表シートの日付を、在庫管理シートの売上日に表示させたいのですが、 上手くいきません。 売上金額はSUMIF関数で処理することができました。 Excelに関する知識も乏しく、非常に困っています。 なにぶん初めての質問のために質問内容も的を得ず、わかりづらいかもしれませんが、 どなたかお分かりになる方、是非ご教示くださいませ。

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

    エクセルの関数について 【Sheet1】 B列・・・J列 売上日  商品名 9/12   りんご 9/12   みかん 9/12   りんご 9/14   りんご という売上表があったとして、Sheet2にJ列の項目ごとに売上日を表示できる数式を教えていただきたいです。こんな↓イメージです。 【Sheet2】 A列・・B列・・・C列・・・・ 商品名 売上日1 売上日2・・・売上日31 りんご 9/12  9/14 【Sheet1】の売上表は、売上が立つごとに入力していく表なので、 一日に同じ商品名(J列)が何度もでてきますが、同一売上日は、1回だけの表示にしたいです。 売上表は月でしめるので、毎日売れたとして、売上日は最大31日です。 【Sheet1】の売上表は、パソコンの苦手なパートの方が作成しているので、いじりたくありません。 当方あまりパソコンが得意ではないため、説明が分かりにくくて申し訳ないのですが、よろしくお願いします。

  • Excel 2つの表の当てはめ

    教えてください。 エクセルで同じシートに2つの表があります。 (表1)にはNo.と名前と顧客コードがあり、 (表2)には空欄の顧客コードと名前が入ってます。(※画像参照) (表1)の顧客コードを、(表2)の顧客コード欄に当てはめたいのですが、 (表1)と(表2)の名前の並び順がバラバラで、 おまけに(表2)には(表1)に載っていない人もいます。 実際には数が3千件程あるので、 確実に当てはめる方法はないでしょうか・・。 Windows7を使っており、Excelは2010です。 どうぞよろしくお願いいたします。

  • 別表から、増減する顧客の使った金額を担当毎に集計する。

    別表から、増減する顧客の使った金額を担当毎に集計する。 Excel Sheet1には、担当、顧客、そして、金額が入力されています。 Sheet2には、担当毎に顧客をならべ、担当毎に顧客の金額を集計する欄を作り集計したいのです。 顧客の数、担当の数は、時と場合により増減します。 Sheet1を参照し、Sheet2に並べ替えるまでは出来ましたが、担当毎の集計をExcelの関数を用いて、自動化したいのです。 つまり、顧客数が増減するので、集計したいセルが時に増減するわけです。其れをExcelの関数で増減しても集計できるようにならにでしょうか? 宜しくお願いします。

  • エクセルで「3次元配列」表の作成方法

    エクセルで「3次元配列」表の作成方法 エクセルの表は、縦横の2次元配列と言えるでしょう。 そのため、縦を顧客とし、横を月とし、月毎の顧客別売り上げのような表は見やすく表現できるし、それに対応した関数も沢山あります。 これに対し、3次元以上の配列を表現するには長けていないと思います。 私は、月、顧客、製品別に、コスト、売り上げを計算する3(4?)次元のデータを扱いたいのですが、合理的な方法はないでしょうか? エクセルに詳しくない人でも、顧客や製品を新たに追加できるようなものを作りたいのですが・・・。 今思いついた方法は、顧客リストシートと製品リストシートを作成する方法ですが、それを参照する製品は400種類、顧客は18社ですので、製品毎、顧客ごとにシートを作るのは現実的ではありません。

  • エクセル関数を向教えてください!!!

    (1)売上表があります。 ちがうシートに(2)在庫表があります。 (2)在庫シート D列商品コード L列入出庫数 の表があります。 (1)売上シートのE列に商品番号を入力すると入力に応じて (2)在庫シート のL列入出庫数を減らすようにしたいです。 どのようにしたらできるのでしょうか?? 関数は無知で見よう見まねでやっています。 詳しい方、教えてください。よろしくお願いいたします。

  • エクセルの数式のみ保護し、他の作業はできるようにし

    顧客管理の表があります。 次回の予定日を自動で計算する為の数式を入れたセル(列)があります。 数式の保護をするのは「シートの保護」でできるのは知っているのですが、今回のこの表は管理しやすいようにあいうえお順で作成しているので、新たな顧客が増えた場合は表の途中に行を挿入して追加しています。 「シートの保護」をした場合、ただ行を挿入することはできるのですが、そうすると数式が入っているはずのセルに数式が入っていません。 できれば、顧客情報の入っていない(数式だけは入ってる)行を切り取り(コピー)してからの挿入ができ、なおかつ数式も保護したいのですが、この場合はどのようにすればよいでしょうか。 宜しくお願いします。

  • Excelで表現すると、どのような関数になりますか?

    ある数式をExcelで関数化したいのです。 よろしくお願い致します。 シートを2つ使用しており、【Sheet2】は【Sheet1】の値を参照しています。 【Sheet2】参照⇒【Sheet1】 このとき、【sheet2】が参照しているセルは 【Sheet2】1行目:=Sheet1!H4 【Sheet2】2行目:=Sheet1!H35 【Sheet2】3行目:=Sheet1!H66 と、行数が増える毎に「H列」の「行数」が"31"ずつ増加しております。 一般の数式で表現すると、xを【Sheet2】の行数として、  Sheet1!H{4+31*(x-1)} となります。 これをExcelで表現すると、どういった関数になりますか? 識者の方、ご教示よろしくお願い致します。

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

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

  • 教えてください。エクセルについて(初心者です。)

    エクセルについて教えてください。 毎日の業務で「売上表」と「日報」を作成しています。 例えば 売上表のA列に日付  B列に売上  C列に客数を入力します。 日報にTODAY関数で日付を表示させると 売上入力セルにその日の売上が参照される。 といった方法を教えて頂きたいのです。 よろしくお願いします。

専門家に質問してみよう