【问题标题】:[Excel-VBA]Getting the specif price from cell[Excel-VBA]从单元格中获取具体价格
【发布时间】:2017-05-07 11:10:16
【问题描述】:

出于某些原因,我想计算与物品重量相比的价格。

我在 excel 中创建了两列,我真正想要的是,如果我在 A1 中输入 LBS 的数量,例如100,输出需要为 150 美元,- 在 B1 中。我用一个简单的 VBA 代码尝试了一些东西。它可以工作,但是价格会随着时间的推移而变化。

在 C(磅)和 D(价格)列中,我写下了磅和价格(在表 2 中)。 例如

LBS Price
100 150
200 300
300 450

我有以下代码:

Private Sub CommandButton1_Click()
Dim kilo As Integer, result As String

kilo = Range("A1").Value

Select Case kilo
     Case Is >= 300
         result = "450 euro"
     Case Is >= 200
         result = "300 euro"
     Case Is >= 1
         result = "150 euro"
     Case Else
         result = "nvt"
End Select

Range("B1").Value = result

End Sub

问题是列表太长,达到 40000 LBS。超过 40.000 磅/重量的价格为 xxx 每 500 磅/公斤

公式是这样的,在 100 到 199 磅之间,价格为 300 欧元,- 200 到 299 之间的价格将是 450 欧元,-

有人有想法吗?我想得到单元格,所以如果权重在 200 到 300 之间,输出应该是 450 欧元,- 单元格 (B4)

非常感谢。

【问题讨论】:

  • 您实际上是在查看重量到价格的映射 - 有点像您的 If 语句 - 或者将重量转换为价格的算法,或者两者的组合。我不确定有多少人会喜欢尝试构建算法,但有些人可能会,如果他们这样做,他们会想要完整的重量与价格值列表 - 也许现在编辑你的帖子以包含它。
  • 目前算法看起来是Weight / 100 * 150,但问题是:算法在 300 磅之后是否成立。

标签: vba excel


【解决方案1】:

我不太清楚最高价格是多少,但您可以使用下面的公式计算每个“LBS”范围内的PriceFactor

PriceFactor = WorksheetFunction.RoundUp((Kilo / 100), 0)

然后乘以PriceFactor * 150 得到Result

代码

Option Explicit

Private Sub CommandButton1_Click()

Dim Kilo As Long, Result As Long
Dim PriceFactor As Double

Kilo = Range("A1").Value

PriceFactor = WorksheetFunction.RoundUp((Kilo / 100), 0)
Result = PriceFactor * 150

Range("B1").Value = Result

End Sub

【讨论】:

    【解决方案2】:

    我不太清楚您的数据结构,但以下内容应该有助于您朝着正确的方向前进:

    您的 LBS 列表 |表 2 中的价格(C 列和 D 列),确保列表按升序排序...

    =VLOOKUP(A1,Sheet2!C:D,2,True)
    

    此公式“查找”单元格 A1 在范围 Sheet2!C:D 的第一列中的值。如果未找到匹配项,则通过使用True 作为最终参数,我们将(有序)列表视为一组阈值……达到或超过的最后一个阈值将被视为“匹配”行。第三个参数2,表示我们检索Sheet2!C:D范围内的第二个。

    您可以找到VLOOKUP here 的 Office 支持页面

    请注意,如果没有进一步的工作,这将无法处理您的“Max”。例如,您可以将其用作第二个公式的输入,例如:

    =If([output] >= [Max], [Per LB Calculation], [output])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-13
      • 1970-01-01
      • 1970-01-01
      • 2019-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多