2010-04-27 72 views
3

我有一個簡歷並希望在打開時自動更新我的年齡。那麼,我應該在MS Word字段中插入什麼公式?在MS Word字段中顯示日期差異

喜歡的東西:

{= {DATE} - {"01/01/1983"} }

+0

那些誰投關閉 - 字段可以非常充分地編程變量和if/then語句。投票結束這樣的問題意味着你也會投票關閉SO上的每一個'excel-formula'標記問題。檢查出所附的鏈接,你會看到:) – 2010-04-27 23:30:15

+0

@Otaku - 儘管是其中一個投票結束我在某種程度上贊同你。在這些應用程序的「高級用戶」和作爲編程問題之間存在一個灰色地帶。我認爲我們必須根據各自的優點來回答每個問題。在這種情況下,我倒在移民一邊,在另一種情況下,我可能不會。 – ChrisF 2010-04-28 12:43:14

+0

@ChrisF:我可以添加「NotProgrammingRelated」標籤,但是......這不會是真的。 – serhio 2010-04-28 13:05:24

回答

2

這是使用Word域代碼工作更好的網站之一 - http://www.addbalance.com/usersguide/fields.htm - 有關於如何創建+/-日期的例子在那裏。

這裏是你將如何計算基於月份的出生月份和1983年

{IF{DATE\@"MM"} >= 01 { = {DATE\@"YYYY"} – 1983 \#"00"} { = {DATE\@"YYYY"} – 1984 \#"00"}}

注出生年份,在一月份的情況下,這個if語句將永遠是真實,給你=年 - 1983年。您可以使用另一個嵌套的IF語句來檢查當天,以進一步更準確。

+0

我看到了這個,但沒有找到答案我的問題。只有今天\創建\保存日期可用。 – serhio 2010-04-28 08:39:43

+0

是的,你有使用日期來做這個計算。單詞字段代碼是非常難以輸入和正確的,因爲即使錯誤的空格也會給出不同的結果。你需要的代碼在答案中更新。 – 2010-04-28 14:45:39

+0

甚至'{= {DATE \ @「yyyy」} - 2'不起作用...語法錯誤... – serhio 2010-04-28 16:30:35

3

我試過,但無法在Word字段中找到等價於Excel的方法,從另一個白天減去白天(假設05/18/1983從今天03/21/2013),這在Excel中很容易,因爲白天(Excel 2013中的01/01/1900)已被選爲開始日期和隔日,因爲根據此引用計算,所顯示的詳細信息只是表示此結果的一種方式(全日,月份以數字或全名,甚至是Excel的簡單數字),可以通過右鍵單擊單元格並選擇類別單元格格式(從01/01/1900是1,然後05/18/1983是30454(...也是00/01/1900是0!))。

要回答最初的問題,我的建議是寫:

{= {DATE \@ "YYYY"} - my_year - 1*{=OR({={DATE \@ "MM"} < my_month};{=AND({={DATE \@ "MM"} = my_month};{={ DATE \@ "dd"} < my_day})})} \* MERGEFORMAT} 

銘記:

  1. 是花括號{}是字的細節符號(不正常的「字母」),並應按CTRL + F9插入。
  2. 「my_year」,「my_month」(兩次)和「my_day」:應該是數字
  3. 寫這篇文章很短,並提出只有4個變化(unfortunaletly一個月兩次),這將有助於防止錯誤
  4. 對於初學者,這篇文章寫道:今天的年份減去my_year,如果今天的月份值低於my_month或者兩者相等,今天的日期值低於my_day,則減去一,這樣我們就不會再增加一年。

MERGEFORMAT選項有助於保持正確的格式。

此外,對於那些誰不習慣於使用Word領域的工作:

  • 右鍵點擊大括號{},然後選擇「切換域代碼」中的文本,從代碼本身開關(texte內)或此代碼的微積分結果,但可能不是最新的(可能是以前的結果,代碼已被更改)。
  • 爲了確保結果是最新的,請右鍵單擊並選擇「更新字段」。
  • 並確保打開主字段中的每個字段,選擇整個字段(最好選擇包含它的整行),右鍵單擊並選擇「切換字段代碼」(否則,某些字段編碼嚴重或者可能會返回一個無效表達式,可能不會被看到,並且可能會在不想要的時候影響觀看結果)。

這會爲1983年5月18日做的(我改變了1月,是01/01,以避免混亂的18日1):

{= {DATE \@ "YYYY"} - 1983 - 1*{=OR({={DATE \@ "MM"} < 05};{=AND({={DATE \@ "MM"} = 05};{={ DATE \@ "dd"} < 18})})} \* MERGEFORMAT} 
+0

Upvote專門用於// 1.大括號{}是Word特定符號(不是普通的'字母'),應按Ctrl + F9插入//謝謝! – 384X21 2016-02-01 13:45:13

0

我建議計算兩個序列號日期並將它們相減。它不必太參與:無論如何,我們只對年數感興趣。 year * 365 + month * 31 + day應該在這裏做得很好。

年數除以365的差值。然後使用INT去掉小數部分(而不是ROUND,這會使您在一年中大半年)。

{ = INT(({ DATE \@"YYYY" }*365 + { DATE \@"MM" }*31 + { DATE \@"dd" } 
     - (my_year*365 + my_month*31 + my_day))/365) \# "0" } 
0
  1. 創建文本窗體域。名稱的字段爲 「出生日期」

enter image description here

  • 用下面的代碼創建字段:
  • {={DATE \@ "yyyy"} — {BirthDate \@ "yyyy"}}