2016-12-08 8 views
1

1週間= 5日と仮定して、すべてを日に欲しいです。だから私は(も無視したい>と<看板)以下のデータを持っている:週と日を含むテキストをExcelの式に変換するための式

8, Calculated like so --> ((1 week * 5) + 3 days) 
9 
8.25 
13.25 
5.75 
4.25 
0 

はあなたの助けをありがとう:

1w 3d 
> 1w 4d 
> 1w 3.25d 
< 2w 3.25d 
> 1w 0.75d 
< 4.25d 
    0d 

が見えるように答えをたいと思います! UDFは、式にデータを変換して式を評価することによって動作

Public Function xvert(sin As String) As Double 
    While Not Left(sin, 1) Like "[0-9]" 
     sin = Mid(sin, 2) 
    Wend 
    xvert = Evaluate(Replace(Replace(Replace(sin, " ", "+"), "d", ""), "w", "*5")) 
End Function 

enter image description here

答えて

1

=IFERROR(TRIM(SUBSTITUTE(SUBSTITUTE(LEFT(A1,FIND("w",A1)-1),">",""),"<","")),0)*5 + TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(MID(A1,IFERROR(FIND("w",A1),0)+1,LEN(A1)),">",""),"<",""),"d","")) 

enter image description here


EDIT

この式は、問題に対処しなければならないあなたのコメントを1として。

=IFERROR(TRIM(SUBSTITUTE(SUBSTITUTE(LEFT(A1,FIND("w",A1)-1),">",""),"<","")),0)*5 + IFERROR(--TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(MID(A1,IFERROR(FIND("w",A1),0)+1,LEN(A1)),">",""),"<",""),"d","")),0) 
+0

@ Gary'sStudentは 'xvert = Evaluate(Replace(Replace、Replace(sin、"> "、" "、" <"、" "、" d " "、" * 5 + "))'それに対処します '<' and '>' –

+0

私はあなたが優れていると感じています。 –

+0

落ちるだけです: "#VALUE!"エントリが "1w"のとき何らかの理由で1wがそのエラーをスローします(申し訳ありませんが、私は例として提供しませんでしたが、あなたの時間と労力に感謝します)。 – Brian

1

は、以下の一行ユーザ定義関数を考えます。だから、:

3ワット4.3d

は次のように評価されます

= 3 * 5 + 4.3

ユーザー定義関数(UDF)インストールして使用することは非常に簡単です:

  1. ALT-F11によりVBEウィンドウが表示されます
  2. ALT-I ALT-Mは新規モジュールを開きます
  3. VBEウィンドウの内容を貼り付けて閉じます。

ブックを保存すると、そのブックが保存されます。 後で2003その後、Excelのバージョンを使用している場合は、UDFを削除するにはかなりの.xlsx

より.xlsmとして にファイルを保存する必要があります。

  1. 上記のようVBEウィンドウを開きアウト
  2. はクリアコード
  3. エクセルからUDFを使用するにはVBEウィンドウに

を閉じる:

= MyFunctionを(A1)

参照、一般的にはマクロについて詳しく知ることができます。

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

とUDFの仕様については、以下を参照してください。

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

マクロを有効にする必要があります。式のアプローチについては

+0

ありがとうございました! – Brian

関連する問題