乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > <em>if</em>函数能用数组么?-if 函数返回数组 excel,excel if 数组

<em>if</em>函数能用数组么?-if 函数返回数组 excel,excel if 数组

作者:乔山办公网日期:

返回目录:excel表格制作


你好,返回数组名返回的只能够是数组在内存空间中的首地址位置
建议楼主可以建立全局数组,这样就可以在局部函数中修改数组的值了
有不懂的可以追问~

if函数能用数组。

IF函数的第一个参数{1,0}是一个单行两列的数组常量,有两个元素;而第二、第三个参数都是四行单列的数组。进行数组扩展后,三个参数都变成四行两列的数组,各有8个元素:

第一个参数扩展后变成{1,0;1,0;1,0;1,0}

第二个参数扩展后变成{"B1","B1";"B2","B2";"B3","B3";"B4","B4"}

第三个参数扩展后变成{"A1","A1";"A2","A2";"A3","A3";"A4","A4"}

于是我们可以确定:这个数组公式需要重复计算8次,并返回一个四行两列的数组。

第一次计算分别取三个参数的第一个元素,组成普通公式=IF(1,"B1","A1"),根据数值类型自动转换规律,1被转换为逻辑值TRUE,所以计算结果为"B1",该结果为返回的数组中第一行第一列的值;

第二次计算分别取三个参数的第二个元素,组成普通公式=IF(0,"B1","A1"),根据数值类型自动转换规律,0被转换为逻辑值FALSE,所以计算结果为"A1",该结果为返回的数组中第一行第二列的值;

第三次计算分别取三个参数的第三个元素,组成普通公式=IF(1,"B2","A2"),计算结果为"B2",该结果为返回的数组中第二行第一列的值。


不能直接返回一个数组,但是可以用其他方式实现类似功能。
方法1:利用全局变量

分析:全e5a48de588b6e799bee5baa6e997aee7ad94331局变量作为C语言的一个知识点,虽然我们都了解它的特点,但在实际教学过程中应用得并不是很多。由于全局变量的作用域是从定义变量开始直到程序结束,而对于编写有多个返回值的C语言函数,我们可以考虑把要返回的多个值定义成全局变量。当函数被调用时,全局变量被更改,我们再把更改后的全局变量值应用于主调函数中。函数被调用后被更改后的全局变量值即为函数的数个返回值。下面以一个实例演示该方法的应用。
实例1:编写函数求3个数中的最大值与最小值。
方法:把最大值、最小值分别定义成2个全局变量max、min,在用户自定义函数中把求出来的最大值与最小值分别赋给全局变量max、min。函数调用完毕后全局变量的max、min值即保存了函数要求返回的值。程序参考代码如下:
#include "stdio.h"
#include "conio.h"
int max,min;/*定义两个全局变量用于保存函数返回值*/
void max_min(int a,int b,int c) /*定义求最大最小值的函数*/
{max=min=a; /*初始化最大最小值*/
if(max   if(max   if(min>b)min=b;
if(min>c)min=c;
}
main()
{int x,y,z;

不是的,你的这个例子 是你的公式 与你想要的结果出现了偏差,你本想让它们分别等于A3 或者A4 单元格 的数值 却把单元格的引用 使用了 双引号;双引号表示 其中的内容是显示的文本,你输入什么就显示什么 所以 你的公式结果 就应该是那样的结果……
按着你原有的想法,修改一下公式就可以了,就是把双引号去掉……
=IF(A2>5,A3,A4)

补充的部分 不能用公式 因为A1 与其他两个单元比较 结果还要放在A1 这样是不行的 且你的逻辑上出现了问题 A1大于A2 ,A1=A2,A1小于A3 就等于A3,那么 同时满足这两条件的时候 A1=??所以说逻辑上有问题………………并且还产生了 循环引用……

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网