diff --git a/EPPlus/FormulaParsing/Excel/Functions/Information/ErrorType.cs b/EPPlus/FormulaParsing/Excel/Functions/Information/ErrorType.cs
index d22744f..f361ee7 100644
--- a/EPPlus/FormulaParsing/Excel/Functions/Information/ErrorType.cs
+++ b/EPPlus/FormulaParsing/Excel/Functions/Information/ErrorType.cs
@@ -60,6 +60,9 @@
                     return CreateResult(6, DataType.Integer);
                 case eErrorType.NA:
                     return CreateResult(7, DataType.Integer);
+                // Bug G0004
+                case eErrorType.Error:
+                    return CreateResult(8, DataType.Integer);
             }
             return CreateResult(ExcelErrorValue.Create(eErrorType.NA), DataType.ExcelError);
         }
diff --git a/EPPlus/FormulaParsing/ExcelValues.cs b/EPPlus/FormulaParsing/ExcelValues.cs
index 370381a..bcb75d5 100644
--- a/EPPlus/FormulaParsing/ExcelValues.cs
+++ b/EPPlus/FormulaParsing/ExcelValues.cs
@@ -38,7 +38,12 @@
         /// <summary>
         /// Value error
         /// </summary>
-        Value
+        Value,
+        // Bug G0004
+        /// <summary>
+        /// Error error  // Google Bug G0004
+        /// </summary>
+        Error
     }
 
     /// <summary>
@@ -60,6 +65,7 @@
             public const string Num = "#NUM!";
             public const string Ref = "#REF!";
             public const string Value = "#VALUE!";
+            public const string Error = "#ERROR!";  // Bug G0004
 
             private static Dictionary<string, eErrorType> _values = new Dictionary<string, eErrorType>()
                 {
@@ -69,7 +75,8 @@
                     {Null, eErrorType.Null},
                     {Num, eErrorType.Num},
                     {Ref, eErrorType.Ref},
-                    {Value, eErrorType.Value}
+                    {Value, eErrorType.Value},
+                    {Error, eErrorType.Error},  // Bug G0004
                 };
 
             /// <summary>
@@ -157,6 +164,8 @@
                     return Values.Ref;
                 case eErrorType.Value:
                     return Values.Value;
+                case eErrorType.Error:  // Bug G0004
+                    return Values.Error;
                 default:
                     throw(new ArgumentException("Invalid errortype"));
             }
