• ベストアンサー

エクセルでこんなことできますか?再

先ほどの画像では見えませんでした。 再度投稿します。 エクセルで在庫管理をしています。 添付した画像の様なことはできるでしょうか。 どなたか教えて頂けませんか。

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

  • ベストアンサー
  • ryo_ky
  • ベストアンサー率47% (112/237)
回答No.3

多分、関数を組み合わせればできると思うんですが、作業行を使う方法で説明したいと思います。 まず前提として、図の左側の表はSheet1、出力先はSheet2とし、 A列を規格、B列を基準数量、C列が在庫数とします。 先ず作業行はE列を規格、F列を在庫数とし E2に =IF(B2>C3,"",A3) を入力し、これをE2~E5までコピーします。 またF2に =IF(B2>C3,"",C3) を入力し、これをF2~F5までコピーします。 そうすると作業行は下記の様になります。 .  E列   F列 1 空白  空白 2 B    900 3 空白  空白 4   D   1800 次に出力先の計算式ですが、 A列を規格、B列を在庫数とすると A2に =IF(ROW(Sheet1!A1)>SUMPRODUCT((LEN(Sheet1!E$2:E$5)>0)*1),"",INDEX(Sheet1!E$1:E$5,SMALL(INDEX((Sheet1!E$2:E$5="")*100+ROW(Sheet1!E$2:E$5),),ROW(Sheet1!A1)))) を入力し、 A2からB3までをコピーします。 これによって図の右側の表と同じものが作れます。 今回の計算式ではSheet1のA2~C5までの内容しかカバーしていないので、あらかじめ範囲を大きくしておけば、行を増やしても対応できます(その時は作業行も同じ範囲(行数)まで必要です)。

その他の回答 (4)

回答No.5

あなたの前回の同じ質問(参考URL)がまだ締め切られていないようなのですが…。こちらに再掲されている以上、あちらは速やかに締め切ってください。回答はあちらに載せたので、参照してください。

参考URL:
http://okwave.jp/qa/q7858112.html
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! すでに回答は出ていますので、参考程度で・・・ ↓の画像のようにSheet1のデータをSheet2に表示するようにしています。 Sheet1に作業用の列を設けます。 作業列D2セルに =IF(C2<B2,ROW(),"") という数式を入れオートフィルでずぃ~~~!っと下へコピーしておきます。 Sheet2のA2セルに =IF(COUNT(Sheet1!$D:$D)<ROW(A1),"",INDEX(Sheet1!$A:$C,SMALL(Sheet1!$D:$D,ROW(A1)),MATCH(A$1,Sheet1!$1:$1,0))) という数式を入れ、列方向・行方向にオートフィルでコピーすると 画像のような感じになります。 ※ Sheet1の作業列数式は不等号だけにしていますので、 「基準数値」と「在庫数」が同数の場合は表示されません。 仮に同数の場合も表示したい場合はSheet1のD2セルの数式を =IF(OR(COUNTBLANK(A2:C2),B2<C2),"",ROW()) という数式に変更してみてください。m(_ _)m

回答No.2

要するに在庫数を別のシートに出したら良いのですね? 別のシートをクリックする。 ローマ字入力ならシフトを押しながら=を押す。 (=:-:ほ)のキーです。 するとセル内で=が点滅します。 そして在庫数のシートをクリックしてシートを変えて 表示したい在庫数をクリックする。 そしてエンターを押す。 シートが自動で変わります。 これでOKです。

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.1

素直に質問に答えるならば、 「できます」 以上が答えです。 では、その方法ですが、 比較的簡単な方法としては、 1)シートAをシートBにコピー 2)D2(在庫数の右)に、=IF(B2>=C2,"○”,"")を設定し、   D3からD列最終行にコピーします。   →基準数量以下の在庫数となっているものに○が付きます。 3)全列でフィルターをかけます。 4)D列のフィルタで、○のみを選択します。 5)B列を非表示にします。

関連するQ&A