如何建立两个excel工作表之间的关系
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何建立两个excel工作表之间的关系相关的知识,希望对你有一定的参考价值。
在同一个工作簿中要使某个工作表和另一个工作表关联,可以设定.如你准备在sheet1中输入而要在sheet2中也显示同样数据,可在sheet2对应的单元格中(如A3)预先输入=sheet1!A3,
其他单元格用同样办法或用拖动鼠标来设定.
设定好后,第一张工作表输入数据或修改数据,第二张工作表会保持同步.
只要地址明确,还可以在不同文件夹之间建立这种链接.
或者,将第一个工作表中要填定数据的范围复制,然后,采用选择性粘贴.具体操作是:在第二个工作表中,选定对应部位左上角的单元格,点编辑,点选择性粘贴,点窗口中左下角的链接粘贴.然后在第一个工作表中填写或编辑数据,第二张工作表中就出现同样的数据. 参考技术A 在SHEET1的销售额列下面加一个“合计”项,等于每日销售额总和,比如这个单元格是D10。
在SHEET2的“每日总销售额”单元格里,设函数 =Sheet1!D10
SHEET2就自动提取SHEET1的总和,两个表就关联起来了。
我明白你的意思,补充说明,你可以把这个合计项,放到你那列表的最上方(也就是第一行)或最下方(也就是6万多行),放在上面的时候可以隐藏,放到下面的时候,就干脆不去管它。合计的数值可以指定为整列的数值,比如从=SUM(D5:D65534)。
这样设定,无论你一天销售多少,都不影响你求和计算。
合计的内容,包括整个 参考技术B 建立关联,只要使用=即可
如果在表1A1单元格中 输入=
然后点击表2的A1,回车
这样更新表2的数据,表1也会自动同步更新 参考技术C 同一个工作簿中要使某个工作表和另一个工作表关联,可以设定.如你准备在sheet1中输入而要在sheet2中也显示同样数据,可在sheet2对应的单元格中(如A3)预先输入
=sheet1!A3,
其他单元格用同样办法或用拖动鼠标来设定.
设定好后,第一张工作表输入数据或修改数据,第二张工作表会保持同步.
只要地址明确,还可以在不同文件夹之间建立这种链接.
或者,将第一个工作表中要填定数据的范围复制,然后,采用选择性粘贴.具体操作是:在第二个工作表中,选定对应部位左上角的单元格,点编辑,点选择性粘贴,点窗口中左下角的链接粘贴.然后在第一个工作表中填写或编辑数据,第二张工作表中就出现同样的数据.
需要为来自 R Shiny 中的 Excel 工作表的 3 个 InsertUI 字段建立依赖关系
【中文标题】需要为来自 R Shiny 中的 Excel 工作表的 3 个 InsertUI 字段建立依赖关系【英文标题】:Need to build dependency for 3 InsertUI fields coming from Excel sheet in RShiny 【发布时间】:2020-10-04 04:50:31 【问题描述】:我对 R 还很陌生,我正在尝试构建一个小型实用程序来供我学习。
我的 Excel 工作簿中有 3 个字段,名为:
国家 状态 城市
所有这些字段都应该在 UI 中作为下拉菜单出现。
我想要实现的是:'当我为国家/地区进行选择时,应该创建一个新的国家下拉列表,其中包含属于所选国家/地区的国家列表。并根据所选的州,下拉菜单中应填充基础城市'
我在网上找到了一些示例,但它们都创建了一个带有 3 个固定下拉菜单的静态 UI。如何动态实现?
下面的代码帮助我部分实现它,例如:如果我选择一个国家作为“印度”,它会根据使用的过滤器添加另一个下拉列表,其中包含所有州的正确列表。但是,一旦州被填充,即使我更改 Country 的选定值,它们也不会改变。
有人可以帮我解决吗?
library(shiny)
library(shinydashboardPlus)
library(shinydashboard)
library(shinyjs)
library(shinyWidgets)
library(tidyverse)
library(dplyr)
library(excelR)
library(readxl)
library(readr)
a<- read.excel("cities.xlsx")
ui<- fluidPage(
titlePanel("Country Details"),
fluidRow(column( width = 8,
div(
textInput("message", label = "",placeholder = "Type your message here."),
actionButton("send", "Send")
)
)))
Server<- function ( input, output, session)
ObsereEvent(input$send,
insertUI(selector#message", where = "beforeBegin",
ui=div(class="bubble",
wellPanel(
p( selectInput("country", "Country", choices =c("All",unique(as.character(a$Country) )), multiple = T) )))))
)
observeEvent(input$country,
insertUI(selector = "#message", where = "beforeBegin",
ui=div( div(class="bubble",
wellPanel(
p(
selectInput("state", "State", choices =c(unique(as.character(a$State))[a$Country==input$country])) )
))))
)
observeEvent(input$state,
insertUI(selector = "#message", where = "beforeBegin",
ui=div( div(class="bubble",
wellPanel(
p(
selectInput("city", "City", choices =c(unique(as.character(a$city))[a$Country==input$country & a$state==input$state])) )
))))
)
ShinyApp( ui, server)
【问题讨论】:
【参考方案1】:在您的服务器函数中,为您的国家/地区selectInput
添加一个observeEvent
侦听器。在其中,使用updateSelectInput
重新填充您的状态selectInput
。同样,为您的州selectInput
编写一个observeEvent
侦听器以更新您的城市selectInput
。
除非重要的是在您选择国家/地区之前不会出现州 selectInput
(以及在您选择州之前不会出现城市 selectInput
,否则您应该能够执行所有这些操作而无需使用insertUI
或renderUI
。在updateSelectInput
上搜索帮助。网上有很多例子。
无法为您提供解决方案,因为您没有为我们提供一个简单、独立的问题示例。这将包括玩具输入数据、您的代码、任何错误消息和预期输出。 This post 可能会有所帮助。
【讨论】:
对不起。我现在已将代码添加到问题中。你现在能帮帮我吗?【参考方案2】:我的查询是一样的-
我的代码在下面-
我想根据第一个选择输入(文凭)的选择过滤数据。即,如果我选择任何文凭课程,我将在 available1 选择 Input 中获取过滤后的数据。
我的代码是-
ui<- fluidPage(useShinyjs(),
#extendShinyjs(text = "shinyjs.button = function() window.scrollTo(0, 50);"),
tags$head(tags$link(rel="stylesheet", href="style.css")),
titlePanel("Chatbot"),
fluidRow(column( width = 8,
div(id='outDiv',
panel(style = "overflow-y:scroll; max-height: 300px; position:relative; align: centre",
textInput("message", label = "",placeholder = "Type your message here."),
actionButton("send", "Send"), heading = "Smart Advisor", status = "primary")
)
)))
server<- function(input, output, session)
# Declaring and Initializing Global Variables
i <- 1
lvl <- reactiveVal()
lvl(i)
replyMessage<- function(lvl,msg)
message('Level:', lvl)
message('Message:', msg)
switch(lvl,
if(msg=='Diploma')
insertUI(selector = "#message", where = "beforeBegin",
ui=div(class="chat-bubbles",
div(class="bubble",
wellPanel(
p("As per your selection you are eligible for:", tags$br(),
selectInput("diploma_courses", "Disciplines", choices =c("All",unique(as.character(a1$`Discipline Category1`) )),
multiple = T)
)))))
observeEvent(input$diploma_courses,
insertUI(selector = "#message", where = "beforeBegin",
ui=div(class="chat-bubbles",
div(class="bubble",
wellPanel(
p(
selectInput("available1", "Specialization", choices =c(as.character(a1$Subject1)[a1$`Discipline Category1`== input$diploma_courses])) )
))))
)
getMessage<- function(lvl)
# Observer Event for Message Box
observeEvent(input$send,
if(input$message == '')
insertUI(
selector = "#message",
where = "beforeBegin",
ui=div(class="chat-bubbles",
div(class="bubble",p("Kindly provide a valid input."))
)
)
clearInput()
else
replyMessage(lvl(),input$message)
)
Solution
【讨论】:
以上是关于如何建立两个excel工作表之间的关系的主要内容,如果未能解决你的问题,请参考以下文章