この問題のため、私が設定した在庫テーブルは「入庫、出庫、入金」が同じテーブルになっています。
給餌に関しては、給餌回数を決定することはできず、放流についてはさらに不確実です。在庫フォームに「=」を入力するだけでは、多くのスペースが残ってしまいます。
配列数式を使用して、条件を満たす製品名(番号、仕様など)の数値を返すことができます。ただし、配列数式には特定の範囲が必要であり、その範囲内に null 値を含めることはできないことに注意してください。行数が決まらない場合は計算式を参照できません。
回答者: Stcxj - 2 位レベル 13 2009-8-25 15:58
以下を追加するだけです:
3つのテーブルに分割されているため、「保存」テーブルの商品名を自動的に返すことができません。そこで私は、「入金、入金、入金」を同じフォームに設定したと言いました。重要なのは、「保存」列 (列) の設定です:
A列は商品名(検索条件)、B列は入力用、C列は一覧表示、D列は保存用です。
最終行D列(100行目とする)から入力、つまりD100
=IF(AND(A100""",COUNTIF(A100:A$100,A100)=1),SUMIF(A:A,A100,B:B)-SUMIF(A:A,A100, C:C)、"") 上に入力して埋めてください!
ここで何を言っているのか理解するのは難しいかもしれません。こんにちは、または住所を残していただければ、コピーをお送りします。
「zopey」は「VLOOKUP」関数の使い方について話していますが、「in and out」の問題に遭遇したことがないかもしれませんね。同じ品名・仕様の商品の「ペン」を同日に多数「出入り」でき、先頭のデータのみが返却可能です。
テーブルには 30 列しかないとします。在庫、出荷、および入荷数量のカテゴリは、それぞれ在庫、出荷、入荷です。
[開発ツール]-[VB エディタ]をクリックするか、ALT F11 キーを押して、sheet1 をダブルクリックし、次のコードをウィンドウにコピーします。
プライベート サブ ワークシート_変更(範囲としての ByVal ターゲット)
If Target.End(xlUp) "Outbound" And Target.End(xlUp) "Inbound" then Exit Sub '非アウトバウンドまたは在庫列を変更する場合は、このプログラムを実行しないでください
If Target.Cells.Count > 1 then Exit Sub '変更されたセルが 1 より大きい場合は、プログラムを実行しません
If Not Application.WorksheetFunction.IsNumber(Target) then Exit Sub '変更されたセルが数値でない場合は、プログラムを実行しません
Dim rng As Range、k%
範囲内の各rng("A1:AD1")
If rng = "在庫" then
k = rng.列
終了
終了の場合
###次###Application.EnableEvents = False
If Target.End(xlUp) = "アウトバウンド" then 'アウトバウンドを変更する場合
Cells(Target.Row, k) = Cells(Target.Row, k) - 目標在庫=元の在庫生産数量
Else '変更がデータベースに入力されたとき
Cells(Target.Row, k) = Cells(Target.Row, k) ターゲット '在庫=元の在庫出力数量
終了の場合
Application.EnableEvents = True
エンドサブ
以上が在庫表の問題を解決する: 発生したいくつかの問題と機能の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。