- ベストアンサー
エクセルでこんなことできますか?再
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
多分、関数を組み合わせればできると思うんですが、作業行を使う方法で説明したいと思います。 まず前提として、図の左側の表は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)
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
あなたの前回の同じ質問(参考URL)がまだ締め切られていないようなのですが…。こちらに再掲されている以上、あちらは速やかに締め切ってください。回答はあちらに載せたので、参照してください。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! すでに回答は出ていますので、参考程度で・・・ ↓の画像のように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
- ariakenori
- ベストアンサー率34% (142/410)
要するに在庫数を別のシートに出したら良いのですね? 別のシートをクリックする。 ローマ字入力ならシフトを押しながら=を押す。 (=:-:ほ)のキーです。 するとセル内で=が点滅します。 そして在庫数のシートをクリックしてシートを変えて 表示したい在庫数をクリックする。 そしてエンターを押す。 シートが自動で変わります。 これでOKです。
- kokorone
- ベストアンサー率38% (417/1093)
素直に質問に答えるならば、 「できます」 以上が答えです。 では、その方法ですが、 比較的簡単な方法としては、 1)シートAをシートBにコピー 2)D2(在庫数の右)に、=IF(B2>=C2,"○”,"")を設定し、 D3からD列最終行にコピーします。 →基準数量以下の在庫数となっているものに○が付きます。 3)全列でフィルターをかけます。 4)D列のフィルタで、○のみを選択します。 5)B列を非表示にします。