• ベストアンサー

エクセルでこれはやはり無理なことでしょうか?(二回目の質問)

先日、同様の質問をした者ですが、仕事での用途を考え、下記のような変則表示形式を取っています。(合計セル-項目セル)  常連の回答者様から『一般的でない、アクセスでやること』との指摘を頂戴しました。  私はアクセスは分かりません。  私はC列の*合計数量から下段の等しい文字列を含んだセルの数量を引き、残数表示をE列に表示したいのですが、解決できず、今も困っています。  (B3合計500-150-150-200=0)  A    B    C     D   E 期日  型式  コード   数量  残数 3/1      A1合計  100 3/1 天1   A1    100   0 3/1 天3   B3合計  500 3/1 天7   B3    150  350 3/1 天3   B3    150  200 3/1 天8   B3    200   0 3/1      C2合計  600 3/1 壁2   C2    300  300 3/1 壁5   C2    150  150 3/1 壁3   C2    150   0   一般的でないのは承知しています。単純にこの表示形式を関数等で残数値を導くのは不可能なのでしょうか?  データーが多く、日々変動もあり手入力では無理です。IF,SUMIF,AND,ORを使って何度もトライしていますが、正しく表示できません。(条件設定、セル参照が分からない)エキスパートの方、助けて下さい。

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

  • ベストアンサー
回答No.7

#2です。補足読みました。 後にGとHの2列を付け加えます。見えるとまずいのであれば、最後にこの列を「表示しない」にしてください。    A   B    C     D   E    F     G    H [ 1] 期日 順  型式  コード   数量  残数   仮セル  仮セル   [ 2]3/1         A1合計  100        100   FALSE [ 3]3/1 8  天1   A1    100   0    100   TRUE [ 4]3/1    天3   B3合計  500       500   FALSE [ 5]3/1 9  天7   B3    150   0    500   TRUE [ 6]3/1 8  天3   B3    150  150   500   TRUE [ 7]3/1 7  天8   B3    200  300   500   TRUE [ 8]3/1         C2合計  600   0   600   FALSE [ 9]3/1 5  壁2   C2    300   0    600   TRUE [10]3/1 4  壁5   C2    150  300   600   TRUE [11]3/1 3  壁3   C2    150  450   600   TRUE このような形式で可能になります。 入力する式ですが、 F2セル =IF(H2,IF(H3,F3-E2,G2-E2),"") G2セル =IF(H2,G1,E2) H2セル =ISERROR(SEARCH("合計",D2,1)) これを下にコピーしていってください。

superfighter823
質問者

お礼

何度も回答有難うございます。 度々、お手数をおかけして感謝申し上げます。  変な表展開ですが、これが解決すると助かります。 表数値と数式の関係を検証して表示させて見ます。  スキルの低い質問者に重ね重ねのご回答、本当に有難うございました。

その他の回答 (6)

noname#204879
noname#204879
回答No.6

E2: =IF(ISERROR(FIND("合計",C2)),E1-D2,D2)   条件付書式   数式が  =NOT(ISERROR(FIND("合計",C2)))   書式   フォント色が白

superfighter823
質問者

お礼

 回答有難うございました。 アドバイスいただいた数式で残数表示できましたが、質問の表に欠陥がありまして(質問者のエラーです)  #1さんへのお礼に記したような表にするべきだったのです。  その表になると、セル番地、条件表記が変り、IF関数で出せるでしょうか?  質問者に落ち度があり、大変、申し訳ないです。 本当に有難うございました。

  • hinta00
  • ベストアンサー率33% (2/6)
回答No.5

こんにちは。 C列の「コード」項目のデータの並びが必ず「合計」から始まり以下明細行というかたまりでデータが出来ているのを前提にしますと以下のような数式をE列へ入れれは良いと思います。 =IF(RIGHT(C2,2)="合計","",IF(E1="",D1-D2,E1-D2)) 別にAccessでやるほどの事ではないように思います。表計算ソフトなのですからこのくらいの表は当たりまえにつくりますし、ぜんぜん「一般的でない」ことはないと思いますよ。そんなに悲観なさらないでください。

superfighter823
質問者

お礼

 詳細な解説を添えた回答を戴き、有難うございました。  hinta00さんの数式で当初質問した表の残数表記は出来ましたが、使用順位というものが抜けていて(同じコードが連続する中で、下から使い、それに対しての残数表示ということを説明できていませんでした。  修正、順追記形式の表では一つの関数式では出せないでしょうか?肝心なこと忘れていたダメ質問者に願わくば、再度、アドバイスをいただけたら幸いです。  本当に有難うございました。申し訳ありませんでした。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.4

集計のキーがC列のコードだけなら E2=IF(RIGHT($C2,1)="計","",SUMIF($C:$C,$C2,$D:$D)-SUMIF($C$2:$C2,$C2,$D$2:$D2)) これを下方にコピーする。

superfighter823
質問者

お礼

 早々の回答有難うございました。 mshr1962さんの数式でも可能となったのですが、質問させていただいた表に重大なミスがあったことに気付き、#1さんへのお礼にも書いた通りです。  私の過失で申し訳ありません。修正した表形式で使用順に応じた残数表記となると無理でしょうか?  変則的な表記の仕方で分かりにくいものを、回答賜り、有難うございました。

回答No.3

#2です。 補足しておきますと、#2の回答は、コードが連続していることが原則です。  B3合計  B3  C3合計  C3  B3  C3  : このようにC3とB3が混ざると処理できません。  ただ、コード混在があっても、Excelで処理できないこともありません。 Excelで処理しようとする場合に大事なことは、  ★違う意味を持つデータを同じ列で処理しない★ ということです。  質問者さんの事例では、D列がこれに相当します。合計値であったり 違う商品の数量であったりします。これがデータを処理する上で、 芳しくないのです。  データの並びを変えたくないのであれば、そこは表示するだけにして、 F列以降にデータを分けてしまうといいでしょう。 F列にコードA1、G列にコードA2、J列にコードC3といった具合です。  計算はF列以降で行い、E列は出てきた答をまとめるだけのセルにします。  このように行えば、書式を崩さずとも、意外と簡単に処理はできます。

回答No.2

まず、わかりやすいように行番号を振ってみました。    A    B    C     D   E [ 1] 期日  型式  コード   数量  残数 [ 2]3/1      A1合計  100 [ 3]3/1 天1   A1    100   0 [ 4]3/1 天3   B3合計  500 [ 5]3/1 天7   B3    150  350 [ 6]3/1 天3   B3    150  200 [ 7]3/1 天8   B3    200   0 [ 8]3/1      C2合計  600 [ 9]3/1 壁2   C2    300  300 [10]3/1 壁5   C2    150  150 [11]3/1 壁3   C2    150   0 E列だけ計算すればいいのでしょうか? たとえば、E2に =IF(ISERROR(SEARCH("合計",C2,1)),E1-D2,D2) この式を入れて、下にコピーしてみてください。

superfighter823
質問者

お礼

早速の回答有難うございました。色んな方の回答をいただいてから気付いたのですが、私の説明不足で申し訳ありません。 質問させていただいた形式の表で、使用順位があり、降順で使用するため、実はE列の残数表示を以下のようにしたかったのです。    A   B    C     D   E [ 1] 期日 順  型式  コード   数量  残数 [ 2]3/1         A1合計  100 [ 3]3/1 8  天1   A1    100   0 [ 4]3/1    天3   B3合計  500 [ 5]3/1 9  天7   B3    150   0 [ 6]3/1 8  天3   B3    150  150 [ 7]3/1 7  天8   B3    200  300 [ 8]3/1         C2合計  600   0 [ 9]3/1 5  壁2   C2    300   0 [10]3/1 4  壁5   C2    150  300  [11]3/1 3  壁3   C2    150  450  としたかったのです。 何故、こういう表示形式にするのは*合計セルの下段の等しい文字列を含んだセル項目がありますが、わざと仕事の都合上、下から使うとルールで順位おいて、若い番号の型式が終わったあと、合計に対し、残りの使用対象順のコードがどれだけの残量があるか表示したいのです。  折角、時間を掛けていただいて回答を戴いたのに私の重大な表記ミス、説明ミスで誠に申し訳ありません。  当初の表記形式では回答いただいた数式で表示できました。戻り値を見てから意図したように表を作れていなかったことがわかり、すみませんでした。  本当に有難うございました。

noname#25230
noname#25230
回答No.1

エクセルやWord、Accessなどは、VBA(Visual Basic for Application)という、プログラミング言語が使えるようになっています。セルに書く関数などでは実現できないことでも、複雑な条件に基づいた処理を行わせることが可能です。 ...という時点で「へぇ、やってみようかな」と思われないのであれば、無理です(嫌味とかではなく、きちんと勉強しないといけませんし、時間も手間もかかります。覚えてしまえば将来にわたって使えるかもしれませんが)。 というわけで、VBAを知っている人であれば、たぶんVBAを使って実現可能だと思います。 ただし、それが「本来のエクセルの使い方かどうか?」ついては疑問です。何でもかんでもエクセル、という考え方はあまりよろしくありません。適切なツールを適切なタイミングで利用してこそ「仕事」です。趣味でチャレンジするのを誰も止めませんが、仕事としてやるなら、もっとも効率的な方法を検討すべきです。あなたが知っているかどうか、ではなく。

関連するQ&A

  • エクセルの質問です!

    シートに表(1)としてA列に担当者の名前、B列に商品名(a・b・c)、C列にその数量を 売上があるごとにどんどん入力していったとして、それを別の表(2)で集計したいのです。 表(2)で、E列に担当者8名分を入力し、 F列に商品a、G列に商品b、D列に商品cの担当別に集計したいのですが、 C列に入力している数量を合計して反映させる計算式はありますか? 表(1)を引用して、担当者○○が商品aを合計何冊売りました、というようにできませんか? 困っています。どなたかアドバイスお願いします!!!

  • エクセルの集計

    エクセルでの集計(集計と呼べるか解りませんが)についてです。 A列に品番 A-1・A-2・A3・・・が入力されています。B列に品番の残数量 300・500・500・・・が入力されています。品番と残数量で1つの表になっています。 上記の表を基に、他のセルに使用数量を入力して行くと、使用した数量内の品番と数量が自動で集計され、使用数量の下や隣に表示される様にしたいのですがどの様な方法があるでしょうか? (例)C1に使用数量:500と入力すると指定したセル(C2~で品番と数量は別のセルに分けます)にA-1:300 / A-2:200 D1に500と入力すると指定したセル(D2~)にA-2:300 / A-3:200 と、表の上(下からの場合もあります)から使った分を引いて行かれ、集計され、表示したいのです。 宜しくお願いします。 補足 使用した数量と使用した内訳は同じシート内で別の表としています。入力した使用数量の中に、どの品番が何キロ使用されていて、その品番が無くなったら次の品番を何キロ使用したかを自動で集計したいのです。

  • EXCELで日付の表示

    お世話になります。 年月日のデータが3つのセルに分かれて入っており、   A   B   C   D   2005   5    1 Dのセルにつなげた日付表示をしたいのですが、 どのようにしたらよいのでしょうか。 ちなみに、セルDに「=CONCATENATE(A1,B1,C1)」と入れたら、 「200551」と表示されました。セルの表示形式を 「yyyy/m/d」としたのですが、変化なく、 セルEに「=TEXT(D1,"0!/00!/00")」と入れたら、 「20/05/51」となってしまいました。 もとデータのB列C列の表示形式を「00」にしてみましたが、 表示は「05」「01」となるのですが、セルD、Eに反映されないのです。 何か良い方法がありましたら、 教えてください。

  • Excelで在庫数チェックを行いたい

    まず現状ですが、Sheet1のA列に商品型番がa,b,c,d,eとあります。 B列に在庫数を入力します。 Sheet2にはA列に商品型番があるのですが、a,a-1,a-2(以下商品bも同じb-1,b-2)とあります。B列にそれぞれの数量があります。 そこで、在庫入力セルの数式なのですが、Sheet2のa,a-1,a-2の数量を抽出して合計し、その値を返すようにしたいと思っています。商品aはa,a-1,a-2の合計数を表示させるという形です。 分かりにくくて申し訳ないですが、御教授頂ければ幸いです。 宜しくお願い致します。

  • エクセルの計算式

        A列  B列  C列  D列  E列 1行   A   2   100       ○○○ 2行   B   2    200 3行   A       200 4行   C        100 5行   A       100 上記表で、B列が空白の時の、A列のAの、C列の合計を(この場合は、300) 例えば、E列の1行目セルに表示させる時の「E1」の計算式が知りたいのですが、よろしくお願いいたします。

  • エクセルの関数に関して質問です

    「=IF(C1="","",SUM((VLOOKUP(C1,受発注管理表,20,1)):(VLOOKUP(E1,受発注管理表,20,1))))」のような計算式を入れていますが、認識されません。左から、受注No.の列、商品名、数量・・・20列目に金額が入った表があります。 C1セルに合計したい最初の受注No.を入力し、E1セルに最後の受注No.を入力すれば、自動でその範囲の合計金額が表示されるようにしたいのです。いろいろ調べましたが、わかりません。よろしくお願い申し上げます。ちなみに、オートカルクで画面下に表示されるのは知っていますが、セルに表示させたいのです。

  • 集計で出した合計から項目差し引き残数を表示するには?

      次のような表において  A    B   C    D   E  F  G 1期日  品種 産地  数量  22/1    柿  福島   20   32/2   柿  新潟   30   42/3   柿  長野   45   52/4              柿計95 62/5   苺  京都   15  72/6   苺  岡山   35 82/7   苺  島根   40 92/8              苺計90  上記のような配列にて(まだ下に続きあり)果実品種ごとに数量を集計していますが、この表形式に以下のように残数を表示(E列に)どのように式を組めばよいでしょうか?  A    B   C    D   E  F  G 1期日  品種 産地  数量  22/1    柿  福島   20 残75  32/2   柿  新潟   30  残45  42/3   柿  長野   45  残0 52/4              柿計95 62/5   苺  京都   15 残75  72/6   苺  岡山   35  残40  82/7   苺  島根   40  残0 92/8              苺計90  にしたいのですが、実際は集計を出した後、集計数から数量を引いて残数表示させたいので並び替えしています。          苺計90     島根  40  残50     岡山  35  残15     京都  15  残0   の表示にして  合計数-数量=残数としたいのですが、E列にどのようなIF関数式を入力すればよいでしょうか?教えていただけませんか?

  • エクセルについて

    下をエクセルの表だとします。 A     B      C       D       E 1 品番    数量   使用量    使用量    使用量2 S-1  500   600    600    400 3 S-2  200   S-1    S-2    S-3 4 S-3  600   500    100    100 5 S-4  300   S-2    S-3    S-4 6 S-5  150   100    500    300 上記のように、Aに品番があり、Bにその品番の数量があります。C2~E2までに使用数量を入力した場合、指定したセル、 この場合C、D、E3~C,D、E6までに使用量の内訳(A、B列の表を基に)が表示されるようにしたいのですが、どの様な方法があるでしょうか?上記は品番、数量の使用順番は上のセルからですが、場合によっては下のセルからの場合もあります。 ※こんな感じでの質問は初めてですので上手く行きません。見辛くて済みません。

  • エクセルについて

    下をエクセルの表だとします。 A     B      C       D       E 1 品番    数量   使用量    使用量    使用量 2 S-1  500   600    600    400 3 S-2  200   S-1    S-2    S-3 4 S-3  600   500    100    100 5 S-4  300   S-2    S-3    S-4 6 S-5  150   100    500    300 上記のように、Aに品番があり、Bにその品番の数量があります。C2~E2までに使用数量を入力した場合、指定したセル、 この場合C、D、E3~C,D、E6までに使用量の内訳(A、B列の表を基に)が表示されるようにしたいのですが、どの様な方法があるでしょうか?上記は品番、数量の使用順番は上のセルからですが、場合によっては下のセルからの場合もあります。 ※こんな感じでの質問は初めてですので上手く行きません。見辛くて済みません。

  • EXCELでコード別の数量・金額を集計したい。

    EXCELで次のような表があります。  A列:社外向け商品コード  B列:社内向け商品コード  C列:商品名  D列:数量  E列:金額  F列:発注日 (1)これを商品コード別(A・B・Cは一対)に数量と金額を集計。 (2)さらに、この表が5社分あるので、次のような表にまとめたい。  A列:社外向け商品コード  B列:社内向け商品コード  C列:商品名  D列:●社数量合計  E列:●社金額合計  F列:×社数量合計  G列:×社金額合計  H列:△社数量合計  I列:△社金額合計    ・    ・  というように5社分の数量・金額を並べて表示したい。 上記のように集計する方法はありますでしょうか? 宜しくお願い致します。  

専門家に質問してみよう