跳到主要内容

如何在Excel中基于另一个单元格值定义范围?

对于大多数Excel用户来说,计算值范围很容易,但是您是否曾经尝试过根据特定单元格中的数字来计算值范围? 例如,A列中有一列值,我想根据B2中的值计算A列中的值数目,这意味着如果B4中为2,我将对B4中的前XNUMX个值求平均值。 A栏,如下图所示。 现在,我介绍一个简单的公式,以基于Excel中的另一个单元格值快速定义范围。
doc通过单元格值1定义范围

根据单元格值定义范围


箭头蓝色右气泡 根据单元格值定义范围

要基于另一个单元格值来计算范围,可以使用一个简单的公式。

选择要输出结果的空白单元格,输入此公式 =平均(A1:INDIRECT(CONCATENATE(“ A”,B2))),然后按 输入 获得结果的关键。
doc通过单元格值2定义范围

请注意:

1.在公式中,A1是要计算的列中的第一个单元格,A是要计算的列,B2是要基于其计算的单元格。 您可以根据需要更改这些引用。

2.如果要进行汇总,则可以使用此公式 = SUM(A1:INDIRECT(CONCATENATE(“ A”,B2))).

3.如果要定义的第一个数据不在Excel的第一行中(例如,在单元格A2中),则可以使用以下公式: =平均(A2:INDIRECT(CONCATENATE(“ A”,ROW(A2)+ B2-1))).
doc通过单元格值2定义范围


在Excel中按背景或格式颜色快速计数/求和单元格

在某些情况下,您可能具有多种颜色的单元格范围,而您想要基于相同颜色对值进行计数/求和,那么如何快速计算?
Kutools for Excel's 按颜色计数,您可以按颜色快速进行许多计算,还可以生成计算结果的报告。  点击即可获得 30 天的免费全功能试用!
文档按颜色计数1
 
Kutools for Excel:拥有300多个便捷的Excel加载项,可以在30天内免费试用。

最佳办公生产力工具

🤖 Kutools 人工智能助手:基于以下内容彻底改变数据分析: 智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用 Kutools 函数...
热门特色: 查找、突出显示或识别重复项   |  删除空白行   |  合并列或单元格而不丢失数据   |   不使用公式进行四舍五入 ...
超级查询: 多条件VLookup    多值VLookup  |   跨多个工作表的 VLookup   |   模糊查询 ....
高级下拉列表: 快速创建下拉列表   |  依赖下拉列表   |  多选下拉列表 ....
列管理器: 添加特定数量的列  |  移动列  |  切换隐藏列的可见性状态  |  比较范围和列 ...
特色功能: 网格焦点   |  设计图   |   大方程式酒吧    工作簿和工作表管理器   |  资源库 (自动文本)   |  日期选择器   |  合并工作表   |  加密/解密单元格    按列表发送电子邮件   |  超级筛选   |   特殊过滤器 (过滤粗体/斜体/删除线...)...
前 15 个工具集12 文本 工具 (添加文本, 删除字符,...)   |   50+ 图表 类型 (甘特图,...)   |   40+ 实用 公式 (根据生日计算年龄,...)   |   19 插入 工具 (插入二维码, 从路径插入图片,...)   |   12 转化 工具 (小写金额转大写, 货币兑换,...)   |   7 合并与拆分 工具 (高级组合行, 分裂细胞,...)   |   ... 和更多

使用 Kutools for Excel 增强您的 Excel 技能,体验前所未有的效率。 Kutools for Excel 提供了 300 多种高级功能来提高生产力并节省时间。  单击此处获取您最需要的功能...

产品描述


Office Tab 为 Office 带来选项卡式界面,让您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
Comments (21)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
But If I want to sum a column range(say l7:l7800) out of the range d7:ct9000 based on the condition in column a(a7:a9000) and column b(b7:b9000). How will I do it. Please advise
This comment was minimized by the moderator on the site
Is there a way to create a dynamic ranged view, that will isolate all orders from a specific client within a list of clients? I have looked at multiple videos and none actually do what I need it to do. Is there a way to do this or would I need to pull the needed info into a controlled table and use the information from that table?
This comment was minimized by the moderator on the site
Hi, CareTaker. I do not get your question clearly. Could you describe your question or upload a file to show the quetion in details? But I recomend a utility called Data Association for you, maybe can help you, go to this web for details: https://www.extendoffice.com/product/kutools-for-excel/excel-click-cell-to-filter-based-on-another-workbook.html.
This comment was minimized by the moderator on the site
Thank you for the response, its quite the complicated thing to explain but I did manage to come right in the end using the indexing formula with the match formula as well.   =INDEX($B:$B;MATCH($C$2;$B:$B;0);):INDEX($N:$N;MATCH($C$2;$B:$B;0)+$C$3-1;)   at first it was confusing but I'm good now 
This comment was minimized by the moderator on the site
how do I update sum range by using helper cell...For example: if initial sum range is = C1 to M1, how to do change sum range if new data is up to AB1 using a helper cell, instead of changing the formula manually?
This comment was minimized by the moderator on the site
What if the rage is not column, but a row?
This comment was minimized by the moderator on the site
That's a bit trickier as I just found out. You need to use a combination of the CHAR function to convert a number to a letter, CONCAT to piece together a letter and number comprising a cell address, and the INDIRECT function to recognize strings as cell addresses.

In my example, I wrote the following expression:

=SUM(INDIRECT(CONCAT("F",ROW())):INDIRECT(CONCAT(CHAR(64+5+$B$31),ROW())))


where:
Row() is the current row
$B$31 is the cell where the # of columns to count is stored
5 is the offset for the first column to be counted

if you need to go beyond column Z, you’d need a less intuitive variant on that expression using the ADDRESS function:

=SUM(indirect(concat("F",row())):indirect(ADDRESS(row(),$B$31+5,4)))


where:
4 indicates a relative reference
This comment was minimized by the moderator on the site
Hi quick question. My formula =SUMIFS(DATA!$D$5:$D$13914,DATA!$E$5:INDIRECT(CONCATENATE("$E$",C3)),"<"&"1/1/2016") has a range that is from another tab called "DATA." I keep getting #VALUE! errors for this formula. Any suggestions? thanks!
This comment was minimized by the moderator on the site
Earlier I posted: Great formula but why does it only work when referring to the first cell. In other words, if you move the whole range down and the first cell in the range is A5 instead of A1, the formula ceases to work.
After playing with it, I figured out why the formula is not working when the starting row is not row 1. Excel interprets this as the range being A1 thru A4. If you are starting with a different row than row 1, here is how to modify the formula assuming the range now starts with A5:=MAX(A5:INDIRECT(CONCATENATE("A",ROW(A5)+B2)))
This works because the concatenation sees the row reference as fixed in the first example, but it becomes relative in the second example. Hope that helps!
Jared - You can just subtract 4 instead of adding. =MAX(A5:INDIRECT(CONCATENATE("A",ROW(A5)-B2))) [Assuming you have 4 in cell B2, or you could just leave the formula as is and put -4 in cell B2.]
This comment was minimized by the moderator on the site
Hi,cathy, thanks for your supplement, I have test your formula, I think the correct formula may be =MAX(A5:INDIRECT(CONCATENATE("A",ROW(A5)+B2-1))). I have update the tutorual. Thanks again.
This comment was minimized by the moderator on the site
Great formula but why does it only work when referring to the first cell. In other words, if you move the whole range down and the first cell in the range is A6 instead of A1, the formula ceases to work. That seems strange.
This comment was minimized by the moderator on the site
What if I want to count upward from a cell rather than downward? In the above example, the formula starts with A1 and goes downward. Let's say I want a range of 4 cells, beginning with Cell A10 and going to A6. Thank you!
This comment was minimized by the moderator on the site
Jared - See my most recent post for how to solve this.
This comment was minimized by the moderator on the site
I'm having this upward problem also but unable to see your other post for the solution. Can you give me link of the post please? Many thanks!
This comment was minimized by the moderator on the site
Hi, here is a formula may help you to calcualte upward.
=AVERAGE(INDIRECT(CONCATENATE("A",COUNT(A:A)-B1+1)):INDIRECT(CONCATENATE("A",COUNT(A:A))))
A:A is the column that you want to calcualte the average values, B1 is the cell that define the range in column A to calculate.
This comment was minimized by the moderator on the site
Thanks, but may I know why need to use "-B1+1" please?
This comment was minimized by the moderator on the site
Hi, Let me take a detailed example to explain it for you. There are 10 rows in column A, I want to get the last 2 values' average, in other words, average the values in row 9 and row 10. Now B1 contains 2, =COUNT(A:A)-B1+1 will get the result 9, COUNT(A:A) will get the result 10 (the last row of the column A). Now combine other functions to averaget the values in row 9 and row 10. Hope this can help you.
This comment was minimized by the moderator on the site
Can I use this syntax while referring to a different sheet?
This comment was minimized by the moderator on the site
If you want to sum referring to a Different Shet In CONCATENATE formula write [ SHEET NAME+COLUMN+ROW]
Formula=SUM(INDIRECT(CONCATENATE("Sheet1!","D",1)):INDIRECT(CONCATENATE("Sheet1!","D",5)))
This comment was minimized by the moderator on the site
Hi, Thank you so much for your help, but I have a small problem that is I don't have just one column but several ones (about 100 columns) is there a way to change the formula to accommodate the change in columns so O can get the sum for Columns A B C and so on. thanks for your help
This comment was minimized by the moderator on the site
Thank u for your message. If you want to sum first n values across multiple continuous columns, just change A to the last column you ues. EG, sum first 5 values across column A to column D, apply this formula =SUM(A1:INDIRECT(CONCATENATE("D",F2))).
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations