EXCELで得意先の合計を求める方法

このQ&Aのポイント
  • EXCEL2000を使用して各月の全得意先の合計を求める方法を探しています。
  • 現在のデータはB列に得意先コード、C列に得意先名があり、D列以降は別シートからの売上金額です。
  • 最終行までの合計を関数で表示する方法を教えてください。
回答を見る
  • ベストアンサー

EXCELでデータが入っている最終行までの合計

現在、EXCEL2000で各月の全得意先の合計を求める式を作っています。 データは現在B列に得意先コード・C列に得意先名D列以降はVLOOKUP関数で別シートから求めた各月の得意先の売上金額を求めています。 D6セル:VLOOKUP(B6,'5月'!$B$6:$J$1500,9,0) 例えば、現在D6からD1149までにデータが入っており、別シートの得意先元リストの件数が増えれば、自動的に下の行にスライドするようになっています。その為、数行余分に予め関数を入れた空欄の行を作っています。 B6セル:OFFSET(元リスト!$B$6,ROW()-6,COLUMN()-2) 現在D1158にD6からデータの入っている最終行まで合計を関数で表示させたいのですがうまくいきません。ネットでも色々探しているのですが、私の検索の仕方が悪いのか中々見つかりません。 LOOKUP関数となにかを組み合わせて、得意先コード(B列)の空白になっている時、その一つ上のD列の行を参照できるようにできればいいんじゃないかとは思うのですが。 もし、いい方法があればご教示願います。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.5

回答1の数式とは無関係に、今のあなたのエクセルで空白行に#N/Aが表示されているという事ですか? 基本的にエクセルを上手に使うには、関数のエラー値はできるだけ対処してエラーではない結果を表すよう工夫しなければいけません。 具体的には。 たとえばいまD6に =VLOOKUP(B6,'5月'!$B$6:$J$1500,9,0) を記入しているのなら、これを =IF(ISERROR(VLOOKUP(B6,'5月'!$B$6:$J$1500,9,0)),"",VLOOKUP(B6,'5月'!$B$6:$J$1500,9,0)) などのように変更し、以下D1157までコピー貼り付けておきます。 これで空白行のエラーが消え、下流側の計算でもエラーが発生しなくなります。 D1158は回答した通り =SUM(D6:D1157) としておきます。

shinomiya11
質問者

お礼

ご回答いただきありがとうございました。参考にさせていただきます。 エラー処理などの初歩的なことも分からない初心者で、説明が上手くできず、わかりづらかったと思います。ご丁寧な回答を頂きまして、ベストアンアンサーとお礼を申し上げます。 また、行き詰った時は質問させていただきたいと思います。 ありがとうございました。

その他の回答 (4)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.4

D1158に =SUM(D6:D1157) としておくだけで良いのでは。

shinomiya11
質問者

お礼

ありがとうございます。

shinomiya11
質問者

補足

ご回答有り難うございます。私の説明不足で申し訳ありません。No2:KURUMITO様のご回答にてセルの状況を補足させていただいていおります。

回答No.3

質問が理解できていないのですが =SUM(D$6:INDEX(D:D,ROW()-1)) ということでしょうか?

shinomiya11
質問者

お礼

ご回答いただきありがとうございました。参考にさせていただきます。 関数の使い方も勉強し始めたばかりで、説明が上手くできず、わかりづらかったと思います。 また、行き詰った時は質問させていただきたいと思います。

shinomiya11
質問者

補足

ご回答ありがとうございます。説明不足で申し訳ございません。No.2のKURUMITO様の補足にシートのセルの状態を補足させていただいただきました。 ちなみに、CoalTar様の方法で、予備の行の関数を消したら上手く計算できました。 ちなみにこの予備の行の関数を消さずに計算をすることは可能でしょうか? よろしければ教えていただければと存じます。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

例えばD6セルには次のような式を入力することでD列のデータの最後に合計の数値が表示されます。 =IF(B6<>"",VLOOKUP(B6,'5月'!$B$6:$J$1500,9,0),IF(AND(B5<>"",B6=""),SUM(D$5:D5),"")) 最後の行かr1行はなして下方に表示させるのでしたら次のような式にします。 =IF(B6<>"",VLOOKUP(B6,'5月'!$B$6:$J$1500,9,0),IF(AND(B4<>"",B5="",B6=""),SUM(D$5:D5),""))

shinomiya11
質問者

お礼

ご回答いただきありがとうございました。参考にさせていただきます。 関数の使い方も勉強し始めたばかりで、説明が上手くできず、わかりづらかったと思います。 また、行き詰った時は質問させていただきたいと思います。

shinomiya11
質問者

補足

ご回答有り難うございます。これは合計の欄に計算式を入れるのではなく、各得意先の月別売上金額を参照する式に手を加える形ということでしょうか。あまり関数が詳しくない上に、前任者が作ったファイルなので、試行錯誤しながらやっています。 式の内容を把握してからお返事しようと思ったのですが、わからず、教えていただいている上に大変恐縮ですが、計算の流れを教えていただけますでしょうか?あと、補足として下に現在のシートの内容を書きます。 セル行番号 A    B     C      D 4             コード  名 称   5月                  ~省 略~ 1149           TUME   詰 替    0 1150           空白   空 白   #N/A                  ~省 略~ 1155           空白   空 白   #N/A 1156        1157        1158                 総合計   D5~D1149までの合計=SUBTOTAL(9,D6:D1149) 1159                 総合計-現金売上げ 総合計からコード99999の現金売上げを引いた値=D1158-D1098 罫線がないので見づらくて申し訳ありません。A列と、1156・1157行はレイアウトの都合上空白です。オプションで0は非表示にしてあります。1150~1155行までは得意先リストが増えた際の予備の行です。なので現在は元リスト(別シート)には1149件しかデータが無い状態ですので、予備の行はエラーが出ています。 コードは英数混じっています。     

回答No.1

VLOOKUP(B6,'5月'!$B$6:$J$1500,9,0)を VLOOKUP(B6,'5月'!$B:$J,9,0) にするだけでは??

shinomiya11
質問者

お礼

ご回答有り難うございます。 これは、B列からJ列までの全ての行を参照しているということですよね。データも正しく反映されました。有り難うございます。

関連するQ&A

  • エクセル 合計条件が行と列の時の計算式

    エクセルで、データがはいっている”データシート”と 合計を表示させたい”合計シート”があり、 合計シートに同じ番号の品名でおなじ日付のものを合計して 表示させたいと思っています。 データシートには、以下のように品名が同じものが複数はいっています     A列 B列 C列 D列・・・・Z列これからさらにデータが増えていきます 1行目品名 4/1 4/4 4/5 2行目Z100 10  20  30 3行目Z300 40  50  60 4行目Z100 11  22  33 5行目Z200 70  80  90  ・  ・ 200行くらいデータがありこれからさらにデータが増えていきます。 合計シートもデータシートと同じような形で データシートのA列の 同じ番号&同じ日付 の数字をそれぞれセルB2からZ200まで合計した 数字を表示させたいです。     A列 B列 C列 D列・・・・Z列 1行目    4/1 4/4 4/5 2行目Z100 21  42  63 3行目Z300 40  50  60 4行目Z200 70  80  90  ・  ・ 200行目 合計シートのB2セルに入力したのですが、#VALUEエラーがでてしまい ました。 =SUMPRODUCT((データシート'!$A$2:$A$500=合計シート!$A2)*(データシート'!$B$1:$Z$1,合計シート!$B1)) SUMIFでも試してみたのですが、エラーがでてしましました。 説明が分かりにくく申し訳ないですが、どなたか分かる方いらしたら 教えてください。よろしくお願いします。

  • 【エクセル】 行番号を変数とする方法について

    下表のようなデータがあったとします。 A B C D 1 2 TEST 3 4 5 合計 100 6 <目的>ある文字列が含まれる行番号以下の範囲を指定して、VLOOKUP関数を使用。       ある文字列が含まれるセル行番号は、毎回異なる。 <具体例> 1) MATCH関数で、「TEST」という文字が含まれる行番号を取得     この場合「2」 2) VLOOKUP関数で VLOOKUP("合計",A2:D5,2false) というように   MATCH関数で得た行番号を他の関数に組み込みたいです。     どなたか、良い方法を教えて頂けないでしょうか? よろしくお願い致します。

  • Excelで条件に合うデータをピックアップして合計を求めたい

    下記のような条件で合計を求めたいのですが、 SUM関数やSUMIF関数では、求めている合計が得られません。 例) 行/列 A   B    C  1|  No. 金額   氏名 2|  1  200,000  A 3|  1  200,000  B 4|  1  200,000  C 5|  2  150,000  A 6|  2  150,000  D 7|  3  180,000  B 8|  3  180,000  D 9|  3  180,000  E 10| 小計  上記のようなデータがあります。 B列には、Noごとに、それぞれ同じ金額が重複して入力してあります。 ここから、Noの最初の金額である200,000+150,000+180,000=530,000 という合計を10行目に求めたいのです。 現在は、自分でNoを確認しながら、その都度、 合計したいセルを選択して合計を求めているのですが、 データ数が多いため、何か別の方法がないかと思案しております。 どなたか、アドバイスの程、宜しくお願いします。

  • 最終行に行くマクロを教えてください。

    よろしくお願いします。 ------------------------------------- A列--B列--C列--D列 123--123--512--535 264--533--111 -----222 -----○--------○-- ----------------------------------------- 上記のような表があるとして、B列とD列の○の箇所に合計を出したいと思います。 合計を出す行は、固定されているのではなく、B列とD列のデータの多いほうの下の合計を出したのですが、 D列のほうが長いときには、END+方向キーとOffsetで何とか、合計を出したい行までセルを持っていくことはできるのですが、B列のほうがデータが多い場合は、一番下の行までセルを持っていくことができません。 と、オートSUMの操作をマクロに記憶をすると、合計範囲が絶対参照になってしまい、合計する範囲がそのつど変わってしまう場合の処理の仕方がわかりません。 上記のような表を、抽出機能で作成しており、たくさんの抽出結果の合計を出さなければならなく、現状は、一つずつ、合計を出しているしだいです。 使用ソフト EXCEL2000 Win2000

  • エクセルで、データのある行だけを抽出したい。

    エクセルのSheet1にデータが入っており、セルが空白でない行のデータのみを、Sheet2に抽出したいと思っています。 Sheet2にあらかじめ関数を入れておく方法にしたいため、関数について教えてください。 タイムテーブルで予定を管理するような表で、A~Hまでにデータが入っています。 予定を入れる際にはE列には必ず入力をするため、E列が空白でない行のみを抽出したいです。 A|B|C|D|E|F|G|H 月|日|時間|… 11|22|10:00|… 11|22|10:30|… 時間枠は10:00~17:00の30分刻みで、1日15行使用するので、1年で5475行まで使用します。 1行目はタイトル行なので、データは2行目から入力しています。 フィルタオプションで抽出する方法や、それをマクロで登録しておく方法は分かったのですが、あとから予定を追加することがあるため、マクロを実行する度にデータが置き換わると困ってしまいます。 また、抽出したSheet2のI列以降には備考などを入力したいため、やはり後から列がずれると困るため、A~H列に関数を入れておく方法で実行したいと思います。 よろしくお願いいたします。

  • Excelで数行間隔で離れているデータの合計をしたい

    10列目から5行づつ離れたデータを合計したいと思っています。 例えばA10に1,A15に2,A20に3....とデータが続いているとします。 この5行離れているというのはかわりません。Excelの組み込み関数で このような計算をすることができるでしょうか? VBAを利用して5行間隔、X行間隔でデータを合計するというプログラムは作ることができたのですが、組み込み関数を利用してX行間隔のものを合計するといったことができるのかなと思い質問させていただきました。

  • 【Excel】一致するデータの検索

    Excel2003を使用しています。 Sheet1のB列の値がSheet2のA列に入力されている値と一致したら、Sheet1のC列とD列の値をSheet2のC列とD列に表示させたく、VLOOKUP関数を使用したところ、Sheet1のB列とSheet2のA列のデータの並び方(順序)が同じではないためか、VLOOKUP関数ではできませんでした。 こういう場合、マクロで処理することは可能でしょうか?可能であれば、どのようにコードを記述すればいいでしょうか? Sheet1のデータは4行目から、Sheet2のデータは6行目から入力されています。 よろしくお願いします。

  • 選択した行の値だけを合計

    選択した行の値だけを、その行のどのセルをダブルクリックしても合計する方法を教えてください。 A列は、ID,B・C列は値があらかじめ入力されています。 D列に、合計を表示させたいです。 関数・VBAでは、一括して合計はでましたが、VBAで必要な行だけの合計の出し方がわかりません。 VBAの勉強のために活かしたいく、よろしくお願いします。

  • EXCELで最終行の合計を出す方法

    よろしくお願いします。 図の黄色のセルは1月の合計が入力されています。 2月以降のデータを増やすと 黄色のセルに自動的に最終行の合計が表示されるように するにはどうすればいいでしょうか? できるだけ簡単な関数で表示できれば ありがたいです。

  • Excelで特定の日付範囲のデータの合計を出すには

    初めて質問させていただきます。 さまざまなホームページ、掲示板などを巡ってみたのですが解決できなかったため お力を貸していただけたらと思います。 1シート目がこのようなデータ表になっているとします。  A    B     C   111 2011/4/30 2,000 125 2011/4/15 3,000 143 2011/4/30 2,000 166 2011/5/31 5,000 178 2011/5/29 3,000 このデータを使用して、2シート目には、各月の合計金額を表示したいのです。 2011年4月 7,000 2011年5月 8,000 こんな感じです。ちなみに、1シート目のB列の日付は一定でないため1日だけを指定することが できません。 そこで、以下のような関数を考えてみました。 =SUMIF(1シート目!$B$1:$B$1000,IF(TEXT(1シート目!B1,"yyyym")="20114",),1シート目!$C$4:$C$1000) 日付を月までに省略し、それで判断させるというものです(言い回しが下手ですみません)。 ちなみになぜ1000行目まで指定しているかというと、今後もデータは増えていくためです。 現在ここまで式を作り上げたものの、「0」が返ってきます・・・ どこが間違っているのか、もしくはもっといい式があるようでしたら 教えていただけたら幸いです。 よろしくおねがいいたします。

専門家に質問してみよう