关于excel的几个问题
发布网友
发布时间:2022-04-25 07:11
我来回答
共2个回答
热心网友
时间:2023-11-06 00:55
不用编程的话,你试试下面的方法:
一、你把客户与代码写一个对应表,放在一个单独的区域(例如:代码放E列,客户名放F列).
然后在原数据区域前增加一个代码列(以代码在B列,客户在C列为例):在C2中输入
=VLOOKUP(B1,E:F,2,0) 向下拖拽
这样,只要你在B列输入代码,C列就会出现相应的客户名
(如果你的代码表区域在另一个表里,别忘了把表名加上:例如在SHEET2里的A和B列:SHEET2!A:B)
二、第二个问题没太明白你的意图
三:第三个问题要求用到叠代设置:工具--选项--重新计算:在“叠代次数”前打钩。
C列格式设置为日期格式
C1输入公式 =IF(A1="","",IF(D1=A1&B1&C1,C1,NOW()))
D1中输入公式 =IF(A1="","",IF(D1=A1&B1&C1,C1,NOW()))
向下拖拽
这样,更改A或B列,C列就会显示当前日期,D列作为辅助列,用来判断A或B列对应单元格内容是否有变化,有变化就会引起重算,否则不变.(你可以把D列隐藏)
补充回答第二个问题
假如你表1名称为SHEET1,表2名称为SHEET2
表2的G列为客户列表,H列为货物列表
下面的方法可以实现提取出G H两列中与表1数据有关的信息:
在表2表中用公式:
a1中输入1
A2中输入公式 =(IF(COUNTIF(A$1:A1,A1)<COUNTIF(G:G,INDEX(Sheet1!A:A,A1)),A1,A1+1)) 向下拖拽
B1中输入公式 =INDEX(Sheet1!A:A,$A1) 向下拖拽
C1中输入公式 =INDEX(H:H,SUMPRODUCT(LARGE((G$1:G$1000=B1)*ROW(G$1:G$1000),COUNTIF(B$1:B1,B1)))) 向下拖拽
这样,当你在表1的A列输入名称时,表2的B C两列就会从G H两列中提取有关信息
说明: A列为辅助列,B列为客户列,C列为货物
C列的货物的排序方法是倒排的:从H列符合条件的单元格从后到前排列
(用SMALL函数倒是可以实现正序,但公式太复杂,理解起来也有一定难度,对于初学者,还是简单一点吧)
热心网友
时间:2023-11-06 00:55
我来回答 三
就可以了
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub '如果同时修改多个单元格,不运行下面的程序
If Target.Column > 1 Then Exit Sub '如果被修改单元格的列号大于1,不运行下面的程序
Target.Offset(0, 2) = Date '当前单元格右边第2列输入一个日期
End Sub
在补充一下 一的答案
我一的答案是用比较愚蠢的方法的。希望不要见笑了
下面是我一个正在使用的实例
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 7 Then
If Target.Value = "D" Then
Target.Value = "单边桥"
ElseIf Target.Value = "Q" Then
Target.Value = "曲线行驶"
ElseIf Target.Value = "Z" Then
Target.Value = "直接转弯"
ElseIf Target.Value = "L" Then
Target.Value = "连续障碍"
ElseIf Target.Value = "B" Then
Target.Value = "百米加减档"
ElseIf Target.Value = "X" Then
Target.Value = "限速限宽门"
ElseIf Target.Value = "QF" Then
Target.Value = "起伏路"
Else
Exit Sub
End If
End If
End Sub
关于二的问题。我没想好
为什么 客户1填在a1单元格,如果要了2种货物(填在b1,b2),则再输入客户2的名字要出现在a3单元格 为什么要写在A3 而不是写在B1? 如果写B1对于你以后转数据库也会方便很多的。
能给分不?
热心网友
时间:2023-11-06 00:55
不用编程的话,你试试下面的方法:
一、你把客户与代码写一个对应表,放在一个单独的区域(例如:代码放E列,客户名放F列).
然后在原数据区域前增加一个代码列(以代码在B列,客户在C列为例):在C2中输入
=VLOOKUP(B1,E:F,2,0) 向下拖拽
这样,只要你在B列输入代码,C列就会出现相应的客户名
(如果你的代码表区域在另一个表里,别忘了把表名加上:例如在SHEET2里的A和B列:SHEET2!A:B)
二、第二个问题没太明白你的意图
三:第三个问题要求用到叠代设置:工具--选项--重新计算:在“叠代次数”前打钩。
C列格式设置为日期格式
C1输入公式 =IF(A1="","",IF(D1=A1&B1&C1,C1,NOW()))
D1中输入公式 =IF(A1="","",IF(D1=A1&B1&C1,C1,NOW()))
向下拖拽
这样,更改A或B列,C列就会显示当前日期,D列作为辅助列,用来判断A或B列对应单元格内容是否有变化,有变化就会引起重算,否则不变.(你可以把D列隐藏)
补充回答第二个问题
假如你表1名称为SHEET1,表2名称为SHEET2
表2的G列为客户列表,H列为货物列表
下面的方法可以实现提取出G H两列中与表1数据有关的信息:
在表2表中用公式:
a1中输入1
A2中输入公式 =(IF(COUNTIF(A$1:A1,A1)<COUNTIF(G:G,INDEX(Sheet1!A:A,A1)),A1,A1+1)) 向下拖拽
B1中输入公式 =INDEX(Sheet1!A:A,$A1) 向下拖拽
C1中输入公式 =INDEX(H:H,SUMPRODUCT(LARGE((G$1:G$1000=B1)*ROW(G$1:G$1000),COUNTIF(B$1:B1,B1)))) 向下拖拽
这样,当你在表1的A列输入名称时,表2的B C两列就会从G H两列中提取有关信息
说明: A列为辅助列,B列为客户列,C列为货物
C列的货物的排序方法是倒排的:从H列符合条件的单元格从后到前排列
(用SMALL函数倒是可以实现正序,但公式太复杂,理解起来也有一定难度,对于初学者,还是简单一点吧)
热心网友
时间:2023-11-06 00:55
我来回答 三
就可以了
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub '如果同时修改多个单元格,不运行下面的程序
If Target.Column > 1 Then Exit Sub '如果被修改单元格的列号大于1,不运行下面的程序
Target.Offset(0, 2) = Date '当前单元格右边第2列输入一个日期
End Sub
在补充一下 一的答案
我一的答案是用比较愚蠢的方法的。希望不要见笑了
下面是我一个正在使用的实例
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 7 Then
If Target.Value = "D" Then
Target.Value = "单边桥"
ElseIf Target.Value = "Q" Then
Target.Value = "曲线行驶"
ElseIf Target.Value = "Z" Then
Target.Value = "直接转弯"
ElseIf Target.Value = "L" Then
Target.Value = "连续障碍"
ElseIf Target.Value = "B" Then
Target.Value = "百米加减档"
ElseIf Target.Value = "X" Then
Target.Value = "限速限宽门"
ElseIf Target.Value = "QF" Then
Target.Value = "起伏路"
Else
Exit Sub
End If
End If
End Sub
关于二的问题。我没想好
为什么 客户1填在a1单元格,如果要了2种货物(填在b1,b2),则再输入客户2的名字要出现在a3单元格 为什么要写在A3 而不是写在B1? 如果写B1对于你以后转数据库也会方便很多的。
能给分不?