=CONCAT(D2:E3)


join 意思是加入,连接——所以 Textjoin 的作用是连接文本; split 意思是分开——Textsplit 就是把文本分开; after 是在……之后,所以 Textafter 是提取指定间隔符之后的内容; before 是在……之前,所以 Textbefore 是提取指定间隔符之前的内容。
使用自定义格式,能让单元格按指定的样式进行显示。
按Ctrl+1组合键,打开【设置单元格格式】对话框。在【数字】选项卡下切换到【自定义】,在右侧的编辑框中会看到一大堆格式代码。
接下来就介绍几个比较常用的格式代码,看看他们分别有什么作用:
#
显示单元格中原有的数字,但是不显示无意义的零值。
比如自定义格式####.00 ,就是在原有的正数后面加上两位小数。虽然用了四个#号,但是单元格中不够4位的,仍然按原有的位数显示。
0
与#号类似,也是显示单元格中原有的数字,但是当数字比代码的数量少时,会以无意义的零值补齐。
比如自定义格式00000,就是将数值按五位数显示,如果单元格中的数值超过5位,就按单元格中的内容显示,如果不够5位,则会在前面加上0。
?
与“0”的作用类似,但以显示空格代替无意义的零值。
比如设置自定义格式代码为 ????? ,再将单元格对齐方式设置为左对齐,就可以看到不够5位的前面都以空格占位了。
小数点和%,和在单元格中的作用是一样的,略。
如果要在自定义格式中显示文本,可以在文本外侧加上一对半角的双引号。
比如自定义格式代码 0"KWH" ,就会在数值后面加上英文的单位。
半角逗号
这个格式代码在自定义格式中表示千位分隔符号。
比如自定义格式代码 #,###.00 ,就是给数字加上千位分隔符,并且显示两位小数。
半角感叹号和斜杠
强制显示感叹号!或斜杠\之后的一个字符。
比如自定义格式代码 0!.0 ,就是在数字的最后一位前面 ,强制显示一个小数点。
星号
重复下一个字符来填充列宽。
比如自定义格式代码 *$ ,无论单元格中是啥数字,都会显示出一串美元符号。
@
和0的作用类似,只不过0是对数值应用的格式代码,而@是对文本应用的格式代码。
比如自定义格式代码 @最漂亮,楼下这个有点二,就会在每个单元格的名字后面加上同样的后缀。
除此之外,常用的自定义格式代码还有一些字母有特殊含义,比如:
H表示小时,M和H一起使用表示小时和分钟, 如HH:MM 。
S表示秒 ,Y表示年,M表示月,D表示天……
还有一个比较特殊的符号,那就是半角的分号。
她的作用是给代码来分家的。
在自定义格式中,能够分别对正数、负数、0和文本设置不同的显示效果。
完整的自定义格式代码结构为:
对正数应用的格式;对负数应用的格式;对零值应用的格式;对文本应用的格式
每个分段之间就是用分号间隔的。
实际应用时,自定义格式代码的分段数允许少于4个,就像咱们在前半部分看到的那些格式代码就是只有一个分段。
当分段数是一个的时候,表示该格式代码会对正数、负数和0都起作用。
当分段数是两个的时候,分号前面的代码表示对正数和零值应用的格式,分号后面的代码表示对负数应用的格式。
如果分段数是三个,第一个分号前的代码表示对正数的格式,中间部分的代码表示对负数应用的格式,最后部分的,是对零值应用的格式。
在自定义格式代码中,还能够设置简单的条件判断,比如大于、小于、等于、大于等于、小于等于和不等于这些都可以,但是一个自定义格式代码中最多只能设置两个判断条件。
典型结构是这样的:
符合条件1时应用的格式;符合条件2时应用的格式;其他数值应用的格式;文本应用的格式
如下图,选中B列单元格区域,设置自定义格式为:
[<60]0 不及格;[<80]0 良好;0 优秀
设置完成后,就会在成绩后面自动加上评语。
格式代码的意思是:
小于60时,显示单元格中原有的数值和文字“不及格”。小于80时,显示单元格中原有的数值和文字“良好”,除此之外的,显示为“优秀”。
在自定义格式代码中使用条件判断时,需要加上半角中括号,不要漏掉。
再进行条件判断的基础上,咱们还可以在自定义格式中加上控制颜色的代码。
仍然以上面这些数据为例,设置自定义格式代码为:
[<60]0 [红色]不及格;[<80]0 [蓝色]良好;0 优秀
看看效果:
自定义格式代码中,颜色部分同样需要使用半角中括号,并且这些颜色不是随意写的,在中文系统里,可以使用红色、黑色、黄色,绿色、白色、兰色、青色和洋红,或者使用格式代码 [颜色n] ,这里的n可以是1到56的数字。
自定义格式,就像给数字加上了一件漂亮的衣服,开了个美颜,不论他设置的什么自定义格式,只要单击一下单元格,然后看看编辑栏里,就现原形了:
如何将自定义格式转换为实际值呢?
步骤1
复制设置了自定义格式的单元格区域
步骤2
打开剪贴板,单击一下,全部粘贴,就可以了。
关于函数:
函数分类介绍:
下面根据不同的运用场景,对这些常用的必备函数进行分类介绍。


-
清除字符串空格:使用Trim/Ltrim/Rtrim -
合并单元格:使用concatenate -
截取字符串:使用Left/Right/Mid -
替换单元格中内容:Replace/Substitute -
查找文本在单元格中的位置:Find/Search




-
MIN函数:找到某区域中的最小值 -
MAX函数:找到某区域中的最大值 -
AVERAGE函数:计算某区域中的平均值 -
COUNT函数:计算某区域中包含数字的单元格的数目 -
COUNTIF函数:计算某个区域中满足给定条件的单元格数目 -
COUNTIFS函数:统计一组给定条件所指定的单元格数 -
SUM函数:计算单元格区域中所有数值的和 -
SUMIF函数:对满足条件的单元格求和 -
SUMIFS函数:对一组满足条件指定的单元格求和 -
SUMPRODUCT函数:返回相应的数组或区域乘积的和


1、自动生成1~1000序号
=Sequence(1000)
2、所有表格A1求和
=Sum('*'!a1)
3、四舍五入两位
=Round(A1,2)
4、计算排名
=Rank(b2,B:B)
5、三个月的日期
=Edate(now(),3)
6、数字取整
=INT(A1)
7、统计A列数个数
=Count(A:A)
8、统计A列非空个数
=Counta(A:A)
9、把多列转成一列
=ToCol(A1:G9)
10、提取A列不重复值
=Unique(A:A)
11、计算最大值
=Max(A;A)
12、计算最小值
=Min(A:A)
13、提取-后的内容
=TextAfter(A1,”-“)
14、返回当前行号
=Row()
15、今天日期
=Today()
16、提取年
=Year(日期)
17、提取月
=Month(日期)
18、提取天数
=Day(日期)
19、所有工作表名称
=SheetsName()
20、统计A列张三个数
=Countif(A:A,“张三")
21、合并两个表格
=Vstack(表1,表2)
22、查找张三的成绩
=Vlookup(”张三",A:C,2,0)
23、提取A列第3行值
=Index(A:A,3)
24、根据第3列升序排列表格
=SoRt(表格,3)
25、把表格转换成一列
=ToCol(表格)
26、从左边截取字符
=Left(A1,3)
27、从右边截取字符
=right(a1,3)
28、从中间截取3个
=Mid(A1,2,3)
29、合并一行到一个格中
=ConCat(a1:e1)
30、英文首字母大写
=Proper(A1)
'修改前的值Private originalValue As Variant
Private Sub Worksheet_Change(ByVal Target As Range)
'忽略其他单元格If Not (Target.Column = 1 Or Target.Column = 4) Then Exit Sub
Dim currentCell As Range
Dim selectedRange As Range
Set selectedRange = Application.Union(Target, Application.Selection)
'选择多个单元格时忽略If selectedRange.Count <> 2 Then
Exit Sub
End If
Set currentCell = selectedRange.Cells(1, 1)
'范围选择的时候报错If Not (currentCell.Column = 1 Or currentCell.Column = 4) Then Exit Sub
Dim startCell As Range
Set startCell = Cells(currentCell.Row, currentCell.Column + 1)
Dim updateCell As Range
Set updateCell = Cells(currentCell.Row, currentCell.Column + 2)
'第一次输入If currentCell.Column = 1 And originalValue = "" And originalValue <> currentCell.Value Then
startCell.Value = Now()
updateCell.Value = Now()
Exit Sub
End If
'更新内容If currentCell.Column = 1 And currentCell.Value <> "" And originalValue <> currentCell.Value2 Then
updateCell.Value = Now()
Exit Sub
End If
'完成时间If Target.Column = 4 And Target.Value = "" Then
currentCell.Value = Now()
Exit Sub
End If
ifCheckChange = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'获取修改前的值originalValue = Target.Value
End Sub
在Excel中,单元格内绘制斜杠的方法有多种,以下列举几种常见的方式:
- 绘制边框:选择单元格后,在开始功能栏中找到边框并选择绘制边框,然后在单元格内绘制斜线。
- 设置单元格格式:在excel中选择单元格后,右键找到设置单元格格式。在格式页中找到边框,并选择斜线方向后确定。
- 插入形状:在单元格后,找到插入后选择线条形状,在单元格内进行绘制完成斜杠的插入。
- 使用"/"符号:点击单元格后,在单元格的编辑状态下,选择斜杠插入至单元格内,按照方向不同,选择不同的斜杠符号。
在Excel中冻结窗格的操作方法如下:
- 打开相应的Excel表格,确定要冻结的冻结的多行或多列。
- 在界面上找到"视图","冻结窗格",最后找到"冻结首行"或"冻结首列"。
- 点击"冻结首行"后,在表格第一行下面会出现一条细实线,此时再点击"拆分"选项。
- 拆分后,细实黑线会变粗,颜色变浅,将此线下拉到自己需要冻结的多行下面。 如须冻结前四行就将此线下拉到第四行的下面。
- 再次点击冻结窗格,在选项中,选择"冻结拆分窗格"选项。
- 打开Excel文件,按下Alt+F11打开VBA编辑界面。
- 在VBA编辑界面中,找到含有VBA代码的工作簿。
- 在工作簿上右键单击,选择"另存为"-"其他格式"。
- 在弹出的另存为窗口中,选择保存位置和文件名。
- 在文件类型下拉菜单中选择"Excel宏启用工作簿(*.xlsm)",并点击"保存"。
- 完成保存后,即可将含有VBA代码的Excel文件保存为xlsm格式(启用宏的工作簿)文件。
在VBA中,可以通过Application.Selection对象获取当前选中的单元格或单元格区域。如果你想获取第一个选中单元格的坐标,可以使用Application.Selection.Address属性。
vbaSub GetFirstCellAddress()
Dim selectedRange As Range
Set selectedRange = Application.Selection
' 获取第一个选中单元格的地址Dim firstCellAddress As String
firstCellAddress = selectedRange.Cells(1, 1).Address
End Sub
我们使用selectedRange.Cells(1, 1).Address获取第一个选中单元格的地址。
需要注意的是,如果用户选择了多个不连续的单元格或区域,这个方法可能无法正确工作。
在Excel的VBA中,可以使用以下函数来获取当前操作的单元格坐标,并获取计算隔壁单元格的坐标:
vbaPrivate Sub Worksheet_Change(ByVal Target As Range)
Dim currentCell As Range
Set currentCell = Target
Dim currentRow As Integer
currentRow = currentCell.Row
Dim currentColumn As Integer
currentColumn = currentCell.Column
Dim neighborCell As Range
Set neighborCell = Cells(currentRow + 1, currentColumn) '假设邻居单元格在下一行同一列End Sub
这个函数是放在Excel的VBA编辑器中的Worksheet模块下,当工作表中的任何单元格内容发生改变时,它都会执行。
在这个函数中,我们首先使用Target来获取当前发生改变的单元格,然后使用currentCell变量来引用它。接着,我们使用Row和Column属性来获取当前单元格的行号和列号,并将其分别赋值给currentRow和currentColumn变量。
然后,我们使用Cells函数和currentRow、currentColumn变量来获取下一行同一列的单元格,将其赋值给neighborCell变量。接着,我们使用Row和Column属性来获取邻居单元格的行号和列号,并将其分别赋值给neighborRow和neighborColumn变量。