首页 > 解决方案 > 如何减去输入到一个单元格中的值?

问题描述

我需要创建一个“库存图表”。

实际图表包含更多信息,但这些是重要的。

一个 C D
1 物品 库存 物品 退出
2 项目 1 32 第 4 项 5
3 第 2 项 228 第 3 项 20
4 第 3 项 121 项目 1 10
5 第 4 项 93
6 第 5 项 44

我希望用户在 E 列中插入数量后,从正确项目的 B 列中的库存值中减去它。

但由于 B 也可以手动修改(例如,对于库存),我不能在这里使用公式。


编辑:
这是实际的图表。我仍将使用“项目 1”等作为项目名称。实际项目名称可以包含特殊字符,例如空格、“-”、“/”、“(”、“)”和“.”。如果这很重要。

请注意,在此图表中,A 是与以前不同的列。我总是调整您提供的代码以匹配列。

A 列包含项目编号的所有可能变体。此处可能出现空单元格。

D 保留为间隔物。

A、B 和 C 列实际上是第 46 行(包括标题)。列 E 到 I 无限下降。我只是不想让帖子变得不必要的大,所以我把它缩短到 6 行。

<style type="text/css">
.tg  {border-collapse:collapse;border-spacing:0;}
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg .tg-1wig{font-weight:bold;text-align:left;vertical-align:top}
.tg .tg-fymr{font-weight:bold;border-color:inherit;text-align:left;vertical-align:top}
.tg .tg-0lax{text-align:left;vertical-align:top}
.tg .tg-0pky{border-color:inherit;text-align:left;vertical-align:top}
</style>
<table class="tg">
  <tr>
    <th class="tg-1wig">Item Number</th>
    <th class="tg-fymr">Item</th>
    <th class="tg-fymr">Stock</th>
    <th class="tg-fymr">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</th>
    <th class="tg-fymr">Item</th>
    <th class="tg-fymr">Withdrawal</th>
    <th class="tg-1wig">Use</th>
    <th class="tg-1wig">Employee</th>
    <th class="tg-1wig">Date</th>
  </tr>
  <tr>
    <td class="tg-0lax">AAA-AAA-0000</td>
    <td class="tg-0pky">Item 1<br></td>
    <td class="tg-0pky">32</td>
    <td class="tg-0pky"></td>
    <td class="tg-0pky">Item 4</td>
    <td class="tg-0pky">5</td>
    <td class="tg-0lax">Usage</td>
    <td class="tg-0lax">Kuraiko</td>
    <td class="tg-0lax">09.09.2018</td>
  </tr>
  <tr>
    <td class="tg-0lax">0AA-AAA-0000</td>
    <td class="tg-0pky">Item 2</td>
    <td class="tg-0pky">228</td>
    <td class="tg-0pky"></td>
    <td class="tg-0pky">Item 3</td>
    <td class="tg-0pky">20</td>
    <td class="tg-0lax">Usage</td>
    <td class="tg-0lax">Kuraiko</td>
    <td class="tg-0lax">10.09.2018</td>
  </tr>
  <tr>
    <td class="tg-0lax">AAAA-AAA-0000</td>
    <td class="tg-0pky">Item 3</td>
    <td class="tg-0pky">121</td>
    <td class="tg-0pky"></td>
    <td class="tg-0pky">Item 1</td>
    <td class="tg-0pky">10</td>
    <td class="tg-0lax">Usage</td>
    <td class="tg-0lax">Kuraiko</td>
    <td class="tg-0lax">11.09.2018</td>
  </tr>
  <tr>
    <td class="tg-0lax"></td>
    <td class="tg-0pky">Item 4</td>
    <td class="tg-0pky">93</td>
    <td class="tg-0pky"></td>
    <td class="tg-0pky"></td>
    <td class="tg-0pky"></td>
    <td class="tg-0lax"></td>
    <td class="tg-0lax"></td>
    <td class="tg-0lax"></td>
  </tr>
  <tr>
    <td class="tg-0lax"></td>
    <td class="tg-0pky">Item 5</td>
    <td class="tg-0pky">44</td>
    <td class="tg-0pky"></td>
    <td class="tg-0pky"></td>
    <td class="tg-0pky"></td>
    <td class="tg-0lax"></td>
    <td class="tg-0lax"></td>
    <td class="tg-0lax"></td>
  </tr>
</table>

标签: excelvba

解决方案


无法将公式放在 C 列是一个挫折,但也存在手动调整不准确的风险。

我建议创建两个新列。第一个 =“W/Drawl Total”(假设这是 F 列),第二个 =“W/Drawl Proof”(例如,G 列)

F2中的公式是这样的:

=SUMIF($D$2:$D$6,A2,$E$2:$E$6)

这汇总了该行中列出的库存项目的所有提款。
请注意,“范围”和“总和范围”表示为绝对项。这个非常重要。
在此示例中,范围仅从第 2 行到第 6 行,但实际上,您将编辑范围实际底行的行号,并逐行复制公式。

G2中的公式是这样的:

=+C2-F2

很简单。它取 C 列中的值并扣除“提款总额”。这将突出显示手动数据输入与交易数据不一致的地方。您还可以将此公式复制到列中。


推荐阅读