質問

Excelシートがあります
alt text

要件は、列「C」のセルの数字を合計し、列「B」の対応するセルに値を入力することです(この例では0.25 + 1 + 0.25 + 1 = 2.5)。

列「C」の値は変更される可能性があります。要件は、列「C」のセルが変更されたらすぐに「B」の値を更新することです。

作成者に2つの異なる列のテキストと数字に変更するように依頼しましたが、これは標準テンプレートのため受け入れられません。

役に立ちましたか?

解決

マクロを使用して、セル内のテキストを変更せずにこれを実現できます。 あなたがいくつかのことをする必要があるので、私は認めなければなりません、実装は少し遅れます。

1-セルの内容全体をトークン化し、トークンを文字列配列に保存します。

すでに問題があります。セル内にあるテキストは非常に一貫性がありません。 -250ミリ秒、-250ミリ秒、-1秒、-1秒です。このため、各インスタンスを確認する必要があります。したがって、値が数値であるかどうかだけをチェックすることはできません。チームメンバーが便利に提供してくれたすべての順列をチェックする必要があります。

これを行う最良の方法は、正規表現をチェックすることです。したがって、#2は次のようになります。

2-各値をチェックして、多くの4つの正規表現のいずれかに一致するかどうかを確認します。

3-一致する正規表現に応じて、数値を抽出します。

a)単純に値(ie-> 250)の場合、msまたはsecが値を進めるかどうかを確認します。 msの場合、数値を1000で割ります。secの場合、数値はそのままにします。合計に数値を追加します。
b)数字の前にダッシュ(-)が付いている場合は、ダッシュを削除して、ステップa)
を繰り返します c)数字の後に文字が続く場合、文字を削除して手順a)を繰り返します
d)数字の後にピリオドが続く場合、何もしません。これは箇条書きです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top