如何更正EXCEL中的#NUM!错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何更正EXCEL中的#NUM!错误相关的知识,希望对你有一定的参考价值。

已解决!

参考技术A 该错误表示提供了无效的参数给工作表函数,或是公式的结果太大或太小而无法在工作表中表示。

解决办法:确认函数中使用的参数类型正确。如果是公式结果太大或太小,就要修改公式,使其结果在-1×10307和1×10307之间。
参考技术B #NUM 说明你的A1,A2,C1,C2数据有问题!当这些单元格均为空时MEDIAN函数计算会出现错误!你举的例子就是这种情况,B1为0时计算出错。 参考技术C 错误是这一段引起的
CHOOSE((MEDIAN(A1:A2,C2)=A1)+(MEDIAN(A2,C1:C2)=C1)+1,-10,-5,10)
与B1等于多少没有关系.

要确认你的这些涉及单元格是什么值.
可以截图补充一下,截图时包含行号列标和编辑栏,选择公式所在单元格本回答被提问者和网友采纳

当用户返回表单以更正错误时,如何防止浏览器栏中的 URL 发生变化?

【中文标题】当用户返回表单以更正错误时,如何防止浏览器栏中的 URL 发生变化?【英文标题】:How do I prevent URL in browser bar from changing when a user is returned to a form to correct errors? 【发布时间】:2017-05-17 00:16:35 【问题描述】:

我正在使用 Rails 5。我有一个页面,用户可以在其中更新他们的个人资料,如果出现问题,他们会返回到该页面

  def update
    @user = current_user
    if @user.update_attributes(user_params)
      …
      redirect_to url_for(:controller => ‘main’, :action => 'index') and return
    end

    render 'edit'
  end

问题是,当他们返回原始页面时,浏览器栏中的 URL 显示为“http://localhost:3000/users/51”,这不是他们访问的原始 URL(即“http://localhost:3000/users/edit”)。如何使 URL 保持原来的状态?

编辑:这是我运行 rake 路由时产生的结果

           edit_users GET    /users/edit(.:format)                      users#edit
                users GET    /users(.:format)                           users#index
                      POST   /users(.:format)                           users#create
             new_user GET    /users/new(.:format)                       users#new
            edit_user GET    /users/:id/edit(.:format)                  users#edit
                 user GET    /users/:id(.:format)                       users#show
                      PATCH  /users/:id(.:format)                       users#update
                      PUT    /users/:id(.:format)                       users#update
                      DELETE /users/:id(.:format)                       users#destroy

【问题讨论】:

and return 是一个不好的习惯,因为不能保证像 redirect_to 方法这样的东西会返回逻辑上的真实值。最好使用return redirect_to ...,这样就不会失败。 通常我建议做@user.update_attributes! 和重定向。如果更新时出现问题,您将收到 ActiveRecord::RecordInvalid 错误,您可以使用 render(action: 'edit') 进行挽救和处理。 阅读您的 cmets 后,我不清楚答案是什么。执行显然是传递到“渲染“编辑”行,因为模型中存在错误,但结果页面上的 URL 与以前不同。 你在edit行动,所以当然不会一样。解决这个问题的唯一方法是使用一些 URL 技巧,例如 HTML5 历史记录操作,或者在提交之前使用 AJAX 远程进行验证,以确保在提交和重定向之前已经很好了。这通常需要更多的工作。 【参考方案1】:

我认为你的假设是不正确的。您问当用户返回表单以纠正错误时,如何防止浏览器栏中的 URL 发生变化?

答案是:当用户再次查看表单以纠正错误时,浏览器中的 URL 不会改变。因为第一次发送表单时 URL 已经改变了。

使用routes.rb 遵循常见约定,您将拥有以下路线(使用rails routes 列出它们):

GET    /users(.:format)          users#index
POST   /users(.:format)          users#create
GET    /users/new(.:format)      users#new
GET    /users/:id/edit(.:format) users#edit
GET    /users/:id(.:format)      users#show
PATCH  /users/:id(.:format)      users#update
PUT    /users/:id(.:format)      users#update
DELETE /users/:id(.:format)      users#destroy

当您向/users/:id/edit 发出GET 请求时,将呈现用户更新表单。但该表单的实际更新请求已发布到PATCH /users/:id。这意味着浏览器已经使用了另一个 URL。

update 方法中(记住它已经在URL /users/:id)你基本上只有两个选择:

    渲染一些东西。在操作中呈现视图使 URL 保持不变(它仍然是 /users/:id),但您可以更改为使用分配给 @user 的用户,例如在表单上显示其错误。这是更新失败时 Rails 的默认行为。 您可以将浏览器重定向到另一个 URL(例如返回到 /users/:id/edit 或完全不同的 URL,例如主页)。这会更改浏览器地址栏中的 URL。但是重定向总是会发出一个新的GET 请求,这意味着您会丢失通过post 发送的信息,并且您将丢失当前分配给@userUser 实例。在GET 之后,用户从数据库中重新加载,因此没有分配错误。在 Rails 中,当用户点击浏览器中的重新加载按钮时,会在更新成功时使用重定向以防止另一个 POST

恕我直言,您的问题的答案是:如果不离开 Rails 选择的路径并构建完全不同的路线、控制器和表单设置,您将无法做您想做的事。您需要为GETPATCH(或POST)请求配置相同的路由。并且控制器方法需要能够以不同的方式处理这两种类型的请求。由于 Rails 2.0 资源路由是首选方式。在 Rails 2.0 之前,你想要的很常见

我的建议是:遵循 Rails 约定。 URL 并不重要,没有人真正关心。我认为不遵循 Rails 约定只是为表单提供另一个 URL 没有任何好处。

【讨论】:

由于我是 Rails 新手,虽然我编辑了我的问题以包括我的“rake routes”,但我并不完全理解答案是什么。至于“网址不重要,没人真正关心”,我关心,这就是我问这个问题的原因。如果您觉得这很愚蠢或愚蠢,请随意抨击/否决我,或者只是不回答,但我的问题仍然存在。【参考方案2】:

保持showedit模板相同,这两个目的都可以,编辑时实际上是编辑页面,否则视为显示页面,当有错误可用时,它会显示错误

【讨论】:

【参考方案3】:

当我开始使用 Rails 时,我遇到了同样的问题。

但是……

要记住的一点是为什么 Rails 被称为“Rails”。

Rails 之所以称为 Rails,是因为 Rails 的核心设计原则是关于铁路。 Rails 支持约定优于配置,从而使构建网站变得容易,这意味着提供一种且只有一种方式来做事,因此类似于铁路。

作为程序员,当我们选择使用 Rails 时,我们同意坚持使用 Rails 为我们创建的铁轨,以换取简单的编程体验。这就像选择火车而不是汽车一样,您必须保持在轨道上,但作为交换,事情会变得更容易。

因此,每个人的回答很可能都是“不要担心偏离轨道,顺着铁轨走”。

您可以在 Rails 的创建者 DHH 撰写的这篇文章中阅读有关“约定优于配置”和 Rails 设计理念的更多信息 — http://rubyonrails.org/doctrine

【讨论】:

【参考方案4】:

使用这个

redirect_to edit_user_path

【讨论】:

更好,redirect_to edit_user_path(current_user) 这样 Rails 会知道哪个用户【参考方案5】:

即使不推荐,也可以为所欲为:

使用render 显示错误 在 routes.rb 中使用 URL /users/edit 创建路由 PUT 或 PATCH 在你的视图中使用这条路线(检查form_for参数) 将用户 ID 存储在某处: 如果您正在编辑登录用户,我建议您使用会话。 否则,我建议在表单中添加hidden_field_tag 参数 相应地更新控制器中的current_user 函数

【讨论】:

【参考方案6】:

我怀疑这可能就是你要找的东西。

redirect_to :edit

http://api.rubyonrails.org/classes/ActionController/Redirecting.html

【讨论】:

虽然我添加了“redirect_to :edit”,但它导致了错误,“undefined method `edit_url' for #<0x007fab10d46968>【参考方案7】:

您可以使用以下语法:

redirect_to :back

【讨论】:

那行不通。尽管 URL 相同,但与模型相关的任何错误消息都不会像以前“渲染”时那样显示在视图中。

以上是关于如何更正EXCEL中的#NUM!错误的主要内容,如果未能解决你的问题,请参考以下文章

在Microsoft Excel软件中 #NUM!是啥意思

excel 中计算结果出现"#num!" ,单元格显示为特殊颜色

EXCEL求年龄出错,用=DATEDIF(G2,TODAY(),"YMD")报num

excel 里出现 #value? 如何解决呢?

Excel公式错误代码#NUM怎么办

EXCEL表格出现#NUM是怎么回事