求助,Excel2003版的,把15个数字根据条件整体向上移动的公式问题,非常感谢!

如题所述

根据提出的要求,推导了如下公式:

B3=IF(D$3<D$32,MAX(D$3-ROWS(3:$32)+1,0),IF(D$3=D$32,ROW(1:1)*(ROW(1:1)<=D$3),MAX(IF(ROW($32:$32)-ROW()=D$32,D$3,B4-1),0)))

截图列举(复制B:D列)了3种情况,并分别给出了不同的数字测试,应该满足题主要求。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-07
=(ROW(A1)>30-(D$3+(D$32<12)*D$32))*(30-(D$32<12)*D$32>=ROW(A1))*(N(B2)+1)
但这样又不符合D3为15时的规则追问


万分的感谢老师,公式非常好用,还得再麻烦老师您一下,问题我又修改了显示条件,清老师帮我看一下怎样修改老师的公式才能实现,拜托了!

追答

我的公式已经考虑到了D3的改变,你试试

追问

非常感谢老师,请老师帮我看一下图五的要求,就这个没有解决了,拜托了!

追答

先理清你的逻辑,D3为15时,更改D32数值,允许B3为1,为何D3为18时,B3就不能为1呢?
按你先前的逻辑,D3为18,D32为12时不应该整体继续向上推一格,当D32为>=13时才整体置底吗?

先理清你的逻辑,D3为15时,更改D32数值,允许B3为1,为何D3为18时,B3就不能为1呢?
按你先前的逻辑,D3为18,D32为12时不应该整体继续向上推一格,当D32为>=13时才整体置底吗?

追问

D3里的数字不会超过18,B列里的数字是根据D32里显示的向上移动的,D32里大于11时,1-18在B3到B32的最下面,然后根据D32里数字1-11向上移动,当D32里数字是11时,B列里的1-18会整体向上移动11个单元格,这时不管B列上面还有多少个是0的单元格,等D32里显示的数字大于11时,1-18就自动返回显示

在B3到B32的最下面,请老师参考一下这张图,拜托了!

非常感谢老师,D3里显示的数字不会超过18,B列里的数字是根据D32里的数字向上移动的,D32里的数字大于11时,1-18显示在B3到B32的最下面,然后根据D32里数字1-11向上移动,当D32里显示数字11时,B列里的1-18会整体向上移动11个单元格,这时不管B列上面还有多少个显示0的单元格,等D32里显示的数字大于11时,数字1-18就自动返回显示在B3到B32的最下面,拜托了!

追答

=(ROW(A1)>30-(D$3+(D$32=ROW(A1))*(N(B2)+1)
但这样又不符合D3为15时的规则

vbnm,。、

主答已更改

追问

多谢老师,让您费心了,D3里的数字是在10-18之间随机变动的,我测试了一下,显示18以下的数字,都不能满足要求,请老师您参考下图,帮我解决一下,拜托了!

追答

是不是不管D3是多大,数字串下方的0的个数不能超过11
=(ROW(A1)>30-(D$3+(D$32=ROW(A1))*(N(B2)+1)

是不是不管D3是多大,数字串下方的0的个数不能超过11
=(ROW(A1)>30-(D$3+(D$32=ROW(A1))*(N(B2)+1)

追问

非常感谢老师,我实际应用时B列里的数字会向下增加很多(500个单元格),D3里的数字也在450,D32里的数字要修改到大于43,但是不管怎样修改D32里的限制数字,B列上面是0的单元格肯定多于D32显示的限制数字43,拜托老师了!

本回答被提问者采纳
第2个回答  2020-03-06
显示和使用窗口
若要 按
切换到下一个程序。 Alt+Tab
切换到上一个程序。 Alt+Shift+Tab
显示 Windows“开始”菜单。 Ctrl+Esc
关闭选定的工作簿窗口。 Ctrl+W 或 Ctrl+F4
恢复选定的工作簿窗口的大小。 Ctrl+F5
切换到已拆分(“窗口”菜单,“拆分”命令)工作表中的下一个窗格。 F6
切换到已拆分工作表中的上一个窗格。 Shift+F6
打开多个工作簿窗口时,切换到下一个工作簿窗口。 Ctrl+F6
切换到上一个工作簿窗口。 Ctrl+Shift+F6
当工作簿窗口未最大化时,执行“移动”命令(在该工作簿窗口的“控件”菜单上)。使用箭头键移动该窗口,完成后按 Esc。 Ctrl+F7
当工作簿窗口未最大化时,执行“大小”命令(在工作簿窗口的“控件”菜单上)。使用箭头键调整窗口大小,完成后按 Esc。 Ctrl+F8
将工作簿窗口最小化为图标。 Ctrl+F9
最大化或还原选定的工作簿窗口。 Ctrl+F10
将屏幕图片复制到剪贴板中。 PrtScr
将选定窗口的图片复制到剪贴板中。 Alt+Print Screen
从程序窗口的其他窗格移至任务窗格 (任务窗格:Office 程序中提供常用命令的窗口。它的位置适宜,尺寸又小,您可以一边使用这些命令,一边继续处理文件。)。可能需要按 F6 多次。 F6 Note 如果按 F6 没有显示所需的任务窗格,请按 Alt 激活菜单栏,然后再按 Ctrl+Tab 移动到任务窗格中。

当菜单或工具栏 (工具栏:包含可用于执行命令的按钮和选项的栏。要显示工具栏,请按 Alt 然后按 Shift+F10。)处于活动状态时,移至任务窗格。可能需要按 Ctrl+Tab 多次。 Ctrl+Tab
当任务窗格处于活动状态时,从其中选择上一个或下一个选项 Tab 或 Shift+Tab
显示任务窗格菜单上的全部命令 Ctrl+空格键
在选定的子菜单的选项间移动,在一组选项的某些特定选项间移动 向下键或向上键
打开选定的菜单,或执行分配给选定按钮的操作 空格键或 Enter
打开一个快捷菜单 (快捷菜单:显示与特定项目相关的一列命令的菜单。要显示快捷菜单,请用右键单击某一项目或按下 Shift+F10。),打开选定的剪辑库项的下拉菜单 Shift+F10
菜单或子菜单可见时,选中其中的第一个或最后一个命令 Home 或 End
在选定的剪辑库列表中向上或向下滚动 Page Up 或 Page Down
移动到选定的剪辑库列表的顶部或底部 Ctrl+Home 或 Ctrl+End
选择菜单栏 (菜单栏:标题栏下面包含菜单名称的水平栏。菜单栏可以是内置菜单栏,也可以是自定义菜单栏。),或者同时关闭打开的菜单和子菜单。 F10 或 Alt
选择选定工具栏上的下一个或上一个按钮或菜单。 Tab 或 Shift+Tab
选择选定工具栏的下一个或上一个工具栏。 Ctrl+Tab 或 Ctrl+Shift+Tab
打开选定的菜单,或执行所选按钮或命令的操作。 Enter
显示所选项的快捷菜单 (快捷菜单:显示与特定项目相关的一列命令的菜单。要显示快捷菜单,请用右键单击某一项目或按下 Shift+F10。)。 Shift+F10
显示 Excel 窗口的“控件”菜单。 Alt+空格键
菜单或子菜单打开时,选择下一个或上一个命令。 向下键或向上键
选择左边或右边的菜单。当子菜单打开时,在主菜单和子菜单之间切换。 向左键或向右键
选择菜单或子菜单上的第一个或最后一个命令。 Home 或 End
关闭打开的菜单。当子菜单打开时,只关闭子菜单。 Esc
显示菜单上的全部命令。 Ctrl+向下键
显示或隐藏“常用”工具栏。 Ctrl+7
移动到下一个选项或选项组。 Tab
移动到上一个选项或选项组。 Shift+Tab
切换到对话框中的下一个选项卡。 Ctrl+Tab 或 Ctrl+Page Down
切换到对话框中的上一个选项卡。 Ctrl+Shift+Tab 或 Ctrl+Page Up
在已打开的下拉列表中的选项之间移动,或者在选项组中的选项之间移动。 箭头键
执行所选按钮的操作,或者,选中或清除所选复选框。 空格键
如果列表已关闭,请打开它并移动到列表中的该选项上。 下拉列表中选项的首字母
选择选项,或者选中或清除复选框。 Alt+选项中带下划线的字母
打开选定的下拉列表。 Alt+向下键
执行对话框中默认命令按钮(用黑体突出显示的按钮,通常为“确定”按钮)的操作。 Enter
取消命令并关闭对话框。 Esc
移动到内容的开始处 Home
移动到内容的末尾 End
向左或向右移动一个字符 向左键或向右键
左移一个单词 Ctrl+向左键
右移一个单词 Ctrl+向右键
选择或取消选择左面的一个字符 Shift+向左键
选择或取消选择右面的一个字符 Shift+向右键
选择或取消选择左面的一个字 Ctrl+Shift+向左键
选择或取消选择右面的一个字 Ctrl+Shift+向右键
选择从插入点到开始处的内容 Shift+Home
选择从插入点到末尾的内容 Shift+End
转至上一个文件夹 Alt+1
“向上一级” 按钮:打开当前文件夹的上一级文件夹 Alt+2
“搜索网站” 按钮:关闭对话框并打开网站搜索页 (搜索页:页面的一种,从中可以查找并转向其他 Internet 网站或 Intranet 上的文档。许多搜索页提供了多种搜索方式,如按主题、按关键字或按照与用户查询的匹配程度。) Alt+3
“删除” 按钮:删除选定的文件夹或文件 Alt+4
“新建文件夹” 按钮:新建文件夹 Alt+5
“视图” 按钮:在可获得的文件夹视图中切换 Alt+6
“工具”按钮:显示“工具”菜单 Alt+7 或 Alt+L
显示选定项(如文件夹或文件)的快捷菜单 (快捷菜单:显示与特定项目相关的一列命令的菜单。要显示快捷菜单,请用右键单击某一项目或按下 Shift+F10。) Shift+F10
在对话框的选项或区域间切换 Tab
打开“查找范围”列表 F4 或 Alt+I
刷新文件列表 F5
显示“帮助”任务窗格。 F1
在“帮助”任务窗格和活动应用程序之间切换。 F6
选择“帮助”任务窗格中的下一个项目。 Tab
选择“帮助”任务窗格中的上一个项目。 Shift+Tab
执行所选项目的操作。 Enter
在目录中,分别对应于选择下一个和上一个项目。 向下键和向上键
在目录中,分别对应于展开和折叠所选项目。 向右键和向左键
后退到上一个任务窗格。 Alt+向左键
前进到下一个任务窗格。 Alt+向右键
打开窗格选项菜单。 Ctrl+向下键
关闭并重新打开当前任务窗格。 Ctrl+F1
展开 +/- 列表。 Ctrl+向右键
折叠 +/- 列表。 Ctrl+向左键
显示“打印”对话框。 Ctrl+P 或 Ctrl+Shift+F12
放大显示时,在页面中移动。 箭头键
缩小显示时,每次滚动一页。 Page Up 或 Page Down
缩小显示时,滚动到第一页。 Ctrl+向上键或 Ctrl+向左键
缩小显示时,滚动到最后一页。 Ctrl+向下键或 Ctrl+向右键
插入新工作表。 Shift+F11 或 Alt+Shift+F1
移动到工作簿中的下一张工作表。 Ctrl+Page Down
移动到工作簿中的上一张工作表。 Ctrl+Page Up
选择当前工作表和下一张工作表。若要取消选择多张工作表,请按 Ctrl+Page Down,或者,若要选择其他工作表,请按 Ctrl+Page Up。 Shift+Ctrl+Page Down
选择当前工作表和上一张工作表。 Shift+Ctrl+Page Up
对当前工作表重命名(“格式”菜单的“工作表”子菜单上的“重命名”命令)。 Alt+O H R
移动或复制当前工作表(“编辑”菜单上的“移动或复制工作表”命令)。 Alt+E M
删除当前工作表(“编辑”菜单上的“删除工作表”命令)。 Alt+E L
向上、下、左或右移动一个单元格。 箭头键
向右移动一个单元格。 Tab
向左移动一个单元格。 Shift+Tab
移动到当前数据区域 (数据区域:包含数据的单元格区域,该区域周围为空白单元格或数据表边框。)的边缘。 Ctrl+箭头键
移动到行首。 Home
移动到工作表的开头。 Ctrl+Home
移动到工作表的最后一个单元格,该单元格位于数据所占用的最右列的最下行中。 Ctrl+End
向下移动一屏。 Page Down
向上移动一屏。 Page Up
向右移动一屏。 Alt+Page Down
向左移动一屏。 Alt+Page Up
切换到已拆分(“窗口”菜单上的“拆分”命令)的工作表中的下一个窗格。 F6
切换到已拆分的工作表中的上一个窗格。 Shift+F6
滚动以显示活动单元格。 Ctrl+Backspace
显示“定位”对话框。 F5
显示“查找”对话框。 Shift+F5
重复上一次“查找”操作(等同于“查找下一个”)。 Shift+F4
在受保护的工作表上的非锁定单元格之间移动。 Tab
在选定区域内从上往下移动。 Enter
在选定区域内从下往上移动。 Shift+Enter
在选定区域中从左向右移动。如果选择单列中的单元格,则向下移动。 Tab
在选定区域中从右向左移动。如果选择单列中的单元格,则向上移动。 Shift+Tab
按顺时针方向移动到选定区域的下一个角。 Ctrl+句号
在不相邻的选定区域中,向右切换到下一个选定区域。 Ctrl+Alt+向右键
向左切换到下一个不相邻的选定区域。 Ctrl+Alt+向左键
打开或关闭“结束”模式。 End
在一行或一列内以数据块为单位移动。 End+箭头键
移动到工作表的最后一个单元格,该单元格位于数据所占用的最右列的最下一行中。 End+Home
移动到当前行中最右边的非空单元格。如果已打开“Lotus 1-2-3 常用键”(“工具”菜单上“选项”命令中的“1-2-3 的帮助”选项卡),则此快捷键序列不起作用。 End+Enter
打开或关闭 Scroll Lock。 Scroll Lock
移动到窗口左上角的单元格 Home
移动到窗口右下角的单元格。 End
向上或向下滚动一行。 向上键或向下键
向左或向右滚动一列。 向左键或向右键
选择整列。 Ctrl+空格键
选择整行。 Shift+空格键
选中整个工作表。如果工作表中包含数据,按 Ctrl+A 会选中当前区域。再次按 Ctrl+A 即可选中整个工作表。 Ctrl+A
在选择了多个单元格的情况下,只选择活动单元格。 Shift+Backspace
选中整个工作表。如果工作表中包含数据,按 Ctrl+Shift+空格键会选中当前区域。再次按 Ctrl+Shift+空格键即可选中整个工作表。选中一个对象时,Ctrl+Shift+空格键会选中工作表中的所有对象 Ctrl+Shift+空格键
在隐藏对象、显示对象和显示对象占位符之间切换。 Ctrl+6
选择活动单元格周围的当前区域(包围在空行和空列中的数据区域)。在数据透视表中,选择整个数据透视表。 Ctrl+Shift+*(星号)
选择包含活动单元格的数组 (数组:用于建立可生成多个结果或可对在行和列中排列的一组参数进行运算的单个公式。数组区域共用一个公式;数组常量是用作参数的一组常量。)。 Ctrl+/
选择含有批注的所有单元格 Ctrl+Shift+O(字母 O)
在选定的行中,选择与活动单元格中的值不匹配的单元格。 Ctrl+\
在选定的列中,选择与活动单元格中的值不匹配的单元格。 Ctrl+Shift+|
选择由选定区域中的公式直接引用的所有单元格。 Ctrl+[(左方括号)
选择由选定区域中的公式直接或间接引用的所有单元格。 Ctrl+Shift+{(左大括号)
选择包含直接引用活动单元格的公式的单元格。 Ctrl+](右方括号)
选择包含直接或间接引用活动单元格的公式的单元格。 Ctrl+Shift+}(右大括号)
选择当前选定区域中的可见单元格。 Alt+;(分号)
打开或关闭扩展模式。在扩展模式中,状态行中将出现“扩展”,箭头键可扩展选定区域。 F8
将其他区域的单元格添加到选定区域中,或使用箭头键移动到所要添加的区域的起始处,然后按 F8 和箭头键以选择下一个区域。 Shift+F8
将选定区域扩展一个单元格。 Shift+箭头键
将选定区域扩展到与活动单元格在同一列或同一行的最后一个非空单元格。 Ctrl+Shift+箭头键
将选定区域扩展到行首。 Shift+Home
将选定区域扩展到工作表的开始处。 Ctrl+Shift+Home
将选定区域扩展到工作表上最后一个使用的单元格(右下角)。 Ctrl+Shift+End
将选定区域向下扩展一屏。 Shift+Page Down
将选定区域向上扩展一屏。 Shift+Page Up
将选定区域扩展到与活动单元格在同一列或同一行的最后一个非空单元格。 End+Shift+箭头键
将选定区域扩展到工作表的最后一个使用的单元格(右下角) End+Shift+Home
将选定区域扩展到当前行中的最后一个单元格。如果已打开“Lotus 1-2-3 常用键”(“工具”菜单上“选项”命令中的“1-2-3 的帮助”选项卡),则此快捷键序列将不起作用。 End+Shift+Enter
将选定区域扩展到窗口左上角的单元格。 Scroll Lock+Shift+Home
将选定区域扩展到窗口右下角的单元格。 Scroll Lock+Shift+End
完成单元格输入并选择下面的单元格。 Enter
在单元格中换行。 Alt+Enter
用当前输入项填充选定的单元格区域。 Ctrl+Enter
完成单元格输入并向上选择上一个单元格。 Shift+Enter
完成单元格输入并向右选择下一个单元格。 Tab
完成单元格输入并向左选择上一个单元格。 Shift+Tab
取消单元格输入。 Esc
向上、下、左或右移动一个字符。 箭头键
移到行首。 Home
重复上一次操作。 F4 或 Ctrl+Y
由行列标志创建名称 (名称:代表单元格、单元格区域、公式或常量值的单词或字符串。名称更易于理解,例如,“产品”可以引用难于理解的区域“Sales!C20:C30”。)。 Ctrl+Shift+F3
向下填充。 Ctrl+D
向右填充。 Ctrl+R
定义名称。 Ctrl+F3
插入超链接 (超链接:带有颜色和下划线的文字或图形,单击后可以转向万维网中的文件、文件的位置或网页,或是 Intranet 上的网页。超链接还可以转到新闻组或 Gopher、Telnet 和 FTP 站点。)。 Ctrl+K
输入日期。 Ctrl+;(分号)
输入时间。 Ctrl+Shift+:(冒号)
显示区域当前列中的数值下拉列表。 Alt+向下键
撤消上一次操作。 Ctrl+Z
输入分币字符 ¢。 Alt+0162
输入英镑字符 £。 Alt+0163
输入日圆符号 ¥。 Alt+0165
输入欧元符号 €。 Alt+0128
键入公式。 =(等号)
关闭了单元格的编辑状态后,将插入点移动到编辑栏内。 F2
在编辑栏内,向左删除一个字符。 Backspace
在单元格或编辑栏中完成单元格输入。 Enter
将公式作为数组公式 (数组公式:数组公式对一组或多组值执行多重计算,并返回一个或多个结果。数组公式括于大括号 ({ }) 中。按 Ctrl+Shift+Enter 可以输入数组公式。)输入。 Ctrl+Shift+Enter
取消单元格或编辑栏中的输入。 Esc
在公式中,显示“插入函数”对话框。 Shift+F3
当插入点位于公式中公式名称的右侧时,显示“函数参数”对话框。 Ctrl+A
当插入点位于公式中函数名称的右侧时,插入参数名和括号。 Ctrl+Shift+A
将定义的名称 (名称:代表单元格、单元格区域、公式或常量值的单词或字符串。名称更易于理解,例如,“产品”可以引用难于理解的区域“Sales!C20:C30”。)粘贴到公式中。 F3
用 SUM 函数插入“自动求和”公式。 Alt+=(等号)
将活动单元格上方单元格中的数值复制到当前单元格或编辑栏。 Ctrl+Shift+"(双引号)
将活动单元格上方单元格中的公式复制到当前单元格或编辑栏。 Ctrl+'(撇号)
在显示单元格值和显示公式之间切换。 Ctrl+`(左单引号)
计算所有打开的工作簿中的所有工作表。 F9 如果选择了一部分公式,则计算选定部分。然后按 Enter 或 Ctrl+Shift+Enter(对于数组公式)可用计算出的值替换选定部分。
计算活动工作表。 Shift+F9
计算所有打开的工作簿中的所有工作表,无论其在上次计算之后是否进行了更改。 Ctrl+Alt+F9
重新检查从属公式,然后计算所有打开的工作簿中的所有单元格,包括未标记为需要计算的单元格。 Ctrl+Alt+Shift+F9
编辑活动单元格,并将插入点放置到单元格内容末尾。 F2
在单元格中换行。 Alt+Enter
编辑活动单元格,然后清除该单元格,或在编辑单元格内容时删除活动单元格中的前一字符。 Backspace
删除插入点右侧的字符或删除选定区域。 Delete
删除插入点到行末的文本。 Ctrl+Delete
显示“拼写检查”对话框。 F7
编辑单元格批注。 Shift+F2
完成单元格输入,并向下选择下一个单元格。 Enter
撤消上一次操作。 Ctrl+Z
取消单元格输入。 Esc
显示“自动更正”智能标记时,撤消或恢复上一次的自动更正。 Ctrl+Shift+Z
复制选定的单元格。 Ctrl+C
显示 Microsoft Office 剪贴板(多项复制与粘贴)。 Ctrl+C,紧接着再按一次 Ctrl+C
剪切选定的单元格。 Ctrl+X
粘贴复制的单元格。 Ctrl+V
清除选定单元格的内容。 Delete
删除选定的单元格。 Ctrl+连字符
插入空白单元格。 Ctrl+Shift+加号
显示“样式”对话框。 Alt+'(撇号)
显示“单元格格式”对话框。 Ctrl+1
应用“常规”数字格式。 Ctrl+Shift+~
应用带两个小数位的“贷币”格式(负数在括号中)。 Ctrl+Shift+$
应用不带小数位的“百分比”格式。 Ctrl+Shift+%
应用带两位小数位的“科学记数”数字格式。 Ctrl+Shift+^
应用含年、月、日的“日期”格式。 Ctrl+Shift+#
应用含小时和分钟并标明上午或下午的“时间”格式。 Ctrl+Shift+@
应用带两位小数位、使用千位分隔符且负数用负号 (-) 表示的“数字”格式。 Ctrl+Shift+!
应用或取消加粗格式。 Ctrl+B
应用或取消字体倾斜格式。 Ctrl+I
应用或取消下划线。 Ctrl+U
应用或取消删除线。 Ctrl+5
隐藏选定行。 Ctrl+9
取消选定区域内的所有隐藏行的隐藏状态。 Ctrl+Shift+((左括号)
隐藏选定列。 Ctrl+0(零)
取消选定区域内的所有隐藏列的隐藏状态。 Ctrl+Shift+)(右括号)
对选定单元格应用外边框。 Ctrl+Shift+&
取消选定单元格的外边框。 Ctrl+Shift+_
应用或取消上框线。 Alt+T
应用或取消下框线。 Alt+B
应用或取消左框线。 Alt+L
应用或取消右框线。 Alt+R
如果选定了多行中的单元格,则应用或取消水平分隔线。 Alt+H
如果选定了多列中的单元格,则应用或取消垂直分隔线。 Alt+V
应用或取消下对角框线。 Alt+D
应用或取消上对角框线。 Alt+U