如何在EXCEL 中实现单元格数值调用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在EXCEL 中实现单元格数值调用相关的知识,希望对你有一定的参考价值。

想先设两列基础数据,比如A1:A26输入a-z,在B1:B26输入1-26,如何能实现在另外的单元格中,比如C1和D1,在C1中输入a-z中的一个字母后,D1中能自动调用对应的1-26的数值?

用查找函数vlookup
VLOOKUP 中的 V 表示垂直方向。当比较值位于需要查找的数据左边的一列时,可以使用 VLOOKUP,而不用 HLOOKUP。

语法
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

Lookup_value 为需要在表格数组(数组:用于建立可生成多个结果或可对在行和列中排列的一组参数进行运算的单个公式。数组区域共用一个公式;数组常量是用作参数的一组常量。)第一列中查找的数值。Lookup_value 可以为数值或引用。若 lookup_value 小于 table_array 第一列中的最小值,VLOOKUP 将返回错误值 #N/A。

Table_array 为两列或多列数据。请使用对区域的引用或区域名称。table_array 第一列中的值是由 lookup_value 搜索的值。这些值可以是文本、数字或逻辑值。不区分大小写。

Col_index_num 为 table_array 中待返回的匹配值的列序号。Col_index_num 为 1 时,返回 table_array 第一列中的数值;col_index_num 为 2,返回 table_array 第二列中的数值,以此类推。如果 col_index_num :

小于 1,VLOOKUP 返回错误值 #VALUE!。
大于 table_array 的列数,VLOOKUP 返回错误值 #REF!。
Range_lookup 为逻辑值,指定希望 VLOOKUP 查找精确的匹配值还是近似匹配值:

如果为 TRUE 或省略,则返回精确匹配值或近似匹配值。也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值。
table_array 第一列中的值必须以升序排序;否则 VLOOKUP 可能无法返回正确的值。可以选择“数据”菜单上的“排序”命令,再选择“递增”,将这些值按升序排序。有关详细信息,请参阅默认排序次序。

如果为 FALSE,VLOOKUP 将只寻找精确匹配值。在此情况下,table_array 第一列的值不需要排序。如果 table_array 第一列中有两个或多个值与 lookup_value 匹配,则使用第一个找到的值。如果找不到精确匹配值,则返回错误值 #N/A。
说明
在 table_array 第一列中搜索文本值时,请确保 table_array 第一列中的数据没有前导空格、尾随空格、不一致的直引号(' 或 ")、弯引号(‘或“)或非打印字符。在上述情况下,VLOOKUP 可能返回不正确或意外的值。有关用于清除文本数据的函数的详细信息,请参阅文本和数据函数。
在搜索数字或日期值时,请确保 table_array 第一列中的数据未保存为文本值。否则,VLOOKUP 可能返回不正确或意外的值。有关详细信息,请参阅将保存为文本的数字转换为数字值。
如果 range_lookup 为 FALSE 且 lookup_value 为文本,则可以在 lookup_value 中使用通配符、问号 (?) 和星号 (*)。问号匹配任意单个字符;星号匹配任意字符序列。如果您要查找实际的问号或星号本身,请在该字符前键入波形符 (~)。
示例 1
本示例搜索大气特征表的“密度”列以查找“粘度”和“温度”列中对应的值。(该值是在海平面 0 摄氏度或 1 个大气压下对空气进行测定的结果。)

1
2
3
4
5
6
7
8
9
10
A B C
密度 粘度 温度
0.457 3.55 500
0.525 3.25 400
0.616 2.93 300
0.675 2.75 250
0.746 2.57 200
0.835 2.38 150
0.946 2.17 100
1.09 1.95 50
1.29 1.71 0
公式 说明(结果)
=VLOOKUP(1,A2:C10,2) 使用近似匹配搜索 A 列中的值 1,在 A 列中找到小于等于 1 的最大值 0.946,然后返回同一行中 B 列的值。(2.17)
=VLOOKUP(1,A2:C10,3,TRUE) 使用近似匹配搜索 A 列中的值 1,在 A 列中找到小于等于 1 的最大值 0.946,然后返回同一行中 C 列的值。(100)
=VLOOKUP(.7,A2:C10,3,FALSE) 使用精确匹配在 A 列中搜索值 0.7。因为 A 列中没有精确匹配的值,所以返回一个错误值。(#N/A)
=VLOOKUP(0.1,A2:C10,2,TRUE) 使用近似匹配在 A 列中搜索值 0.1。因为 0.1 小于 A 列中最小的值,所以返回一个错误值。(#N/A)
=VLOOKUP(2,A2:C10,2,TRUE) 使用近似匹配搜索 A 列中的值 2,在 A 列中找到小于等于 2 的最大值 1.29,然后返回同一行中 B 列的值。(1.71)

示例 2
本示例搜索婴幼儿用品表中的“货品 ID”列,并在“成本”和“涨幅”列中查找与之匹配的值,以计算价格和测试条件。

1
2
3
4
5
6
A B C D
货品 ID 货品 成本 涨幅
ST-340 童车 ¥145.67 30%
BI-567 围嘴 ¥3.56 40%
DI-328 尿布 ¥21.45 35%
WI-989 柔湿纸巾 ¥5.12 40%
AS-469 吸出器 ¥2.56 45%
公式 说明(结果)
= VLOOKUP("DI-328", A2:D6, 3, FALSE) * (1 + VLOOKUP("DI-328", A2:D6, 4, FALSE)) 涨幅加上成本,计算尿布的零售价。(¥28.96)
= (VLOOKUP("WI-989", A2:D6, 3, FALSE) * (1 + VLOOKUP("WI-989", A2:D6, 4, FALSE))) * (1 - 20%) 零售价减去指定折扣,计算柔湿纸巾的销售价格。(¥5.73)
= IF(VLOOKUP(A2, A2:D6, 3, FALSE) >= 20, "涨幅为 " & 100 * VLOOKUP(A2, A2:D6, 4, FALSE) &"%", "成本低于 ¥20.00") 如果某一货品的成本大于或等于¥20.00,则显示字符串“涨幅为 nn%”;否则,显示字符串“成本低于 ¥20.00”。(涨幅为 30%)
= IF(VLOOKUP(A3, A2:D6, 3, FALSE) >= 20, "涨幅为: " & 100 * VLOOKUP(A3, A2:D6, 4, FALSE) &"%", "成本为 ¥" & VLOOKUP(A3, A2:D6, 3, FALSE)) 如果某一货品的成本大于或等于 ¥20.00,则显示字符串“涨幅为 nn%”;否则,显示字符串“成本为¥n.nn”。(成本为 ¥3.56)

示例 3
本示例搜索员工表的 ID 列并查找其他列中的匹配值,以计算年龄并测试错误条件。

1
2
3
4
5
6
7
A B C D E
ID 姓氏 名字 职务 出生日期
1 李 小明 销售代表 12/8/1968
2 林 彩瑜 销售部副总 2/19/1952
3 王 志东 销售代表 8/30/1963
4 潘 金 销售代表 9/19/1958
5 林 丹 销售经理 3/4/1955
6 苏 术平 销售代表 7/2/1963
公式 说明(结果)
=INT(YEARFRAC(DATE(2004,6,30), VLOOKUP(5,A2:E7,5, FALSE), 1)) 针对 2004 财政年度,查找 ID 为 5 的员工的年龄。使用 YEARFRAC 函数,以此财政年度的结束日期减去出生日期,然后使用 INT 函数将结果以整数形式显示。(49)
=IF(ISNA(VLOOKUP(5,A2:E7,2,FALSE)) = TRUE, "未找到员工", VLOOKUP(5,A2:E7,2,FALSE)) 如果有 ID 为 5 的员工,则显示该员工的姓氏;否则,显示消息“未找到员工”。(林)
当 VLOOKUP 函数返回错误值 #NA 时,ISNA 函数返回值 TRUE。

=IF(ISNA(VLOOKUP(15,A3:E8,2,FALSE)) = TRUE, "未找到员工", VLOOKUP(15,A3:E8,2,FALSE)) 如果有 ID 为 15 的员工,则显示该员工的姓氏;否则,显示消息“未找到员工”。(未找到员工)
当 VLOOKUP 函数返回错误值 #NA 时,ISNA 函数返回值 TRUE。

=VLOOKUP(4,A2:E7,3,FALSE) & " " & VLOOKUP(4,A2:E7,2,FALSE) & "是" & VLOOKUP(4,A2:E7,4,FALSE) & "。" 对于 ID 为 4 的员工,将三个单元格的值连接为一个完整的句子。(潘金是销售代表。)
参考技术A D1=SUMIF($A$1:$A$26,C1,$B$1:$B$26)

下面的拉一下即可。

EXCEL函数功能强大,仔细思考,灵活运用,乐在其中!

朋友,多试试!祝你进步!

如何在swift 3中的表视图单元格中实现集合视图的分页?

这里我有布局,其中我的一个表视图单元格包含集合视图,在此我需要实现分页,我现在无法使用func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath)这个函数如何实现表视图的分页可以任何人帮我如何实现这个当它到达我的集合视图的最后一个元素时放置条件,在这里我知道如何实现分页但如何调用需要重新加载的函数?

这是我的函数,用于检测最后一个单元格并使用下面的函数重新加载数据

func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
        let obj = items
        let lastElement = (obj.count) - 1
        print(lastElement)
        if !loadingData && indexPath.row == lastElement {
            loadingData = true
            guard let obj = self.listClassModel else { return }
            if ((obj.searchCriteria.pageSize as? Int) != nil) {
                self.collectionView.bottomRefreshControl?.beginRefreshing()
                let viewController = HomeViewController()
                viewController.loadMoreData()
            }
        }
func loadMoreData() {
        DispatchQueue.global(qos: .background).async {
            guard let obj = self.listClassModel else { return }
            let  totalItems = obj.totalCount
            let numberOfItems = obj.searchCriteria.pageSize as! Int
            let float = Float(totalItems)/Float(numberOfItems)
            print(float)
            let totalPages = Int(ceil(float))
            print(self.count)
            if totalPages != self.count {
                self.index += 1
                self.count += 1
                print(self.count)
                    let batchSize = 10
                    let sortField = "name"
                    let sortOrder = "ASC"
                    let conditionType = "eq"
                    let categoryId = 1
                    self.listCategoryDownloadJsonWithURL(listUrl: listUrlWithParameters)
            }
            else {
                self.loadingData = false
            }
            DispatchQueue.main.async {
                // this runs on the main queue
                self.loadingData = false
            }

        }
    }
答案
  1. 将表视图行高设置为自动维

tableView.rowHeight = UITableViewAutomaticDimension tableView.estimatedRowHeight = 44

2.在uitableViewCell中创建uOollectionView的高度的IBOutlet。为tableViewCell中的collectionView设置前导,尾随,顶部,底部约束。

3.在uitableViewCell(如obj CollectionView)下创建uicollection的出口,并在cellForRowAt indexPath方法中添加以下代码

func tableView(_ tableView:UITableView,cellForRowAt indexPath:IndexPath) - > UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "tableCell", for: indexPath) as! tableCell

    cell.frame = tableView.bounds
    cell.layoutIfNeeded()
    cell.objCollectionView.reloadData()

    cell.objCollectionViewHeightConstraint.constant = cell.objCollectionView.contentSize.height
    return cell;

}

这将自动调整uitableViewCell的高度取决于它的内容。

以上是关于如何在EXCEL 中实现单元格数值调用的主要内容,如果未能解决你的问题,请参考以下文章

如何在WORD文档中插入EXCEL单元格数值

如何在自定义 OLE 对象中实现类似 Excel 的 OLE 链接行为

excel如何根据单元格数值循环求值?

如何在 tableView 单元格中实现收藏按钮?

Excel一个单元格数值随另一单元格数值变化而变化?

在 UICollectionView 中实现按钮点击