EXCEL - 根据横纵列坐标变化寻找对应单元格的值

根据横纵列坐标变化寻找对应单元格的值

EXCEL,公式

同事想实现根据对应的纵横条件,寻找出对应单元格的值的公式。
一时也没想起更好的函数,用了个最笨的方法。

在这里插入图片描述

1.前面新增一列,混合USER+PLACE , 成为唯一的坐标。

=A1&"-"&B1

在这里插入图片描述
2. 建立三个参数下拉菜单

  • user : HK, JP, TW
  • place: SHZ,GGZ,QTD,USH,PLS
  • date: $D$1 - $R$1
    在这里插入图片描述
    在这里插入图片描述

3. 定义对应值开始位置的行,列

ROW = ROW(D2)
COLUMN = COLUMN(D2)

在这里插入图片描述
4. 根据三个参数,定义纵橫的坐标

"ROW" 
= MATCH(B21&"-"&B22,A2:A16,0) /* 根据 "USER-PLACE" 找出纵坐标偏移数 */
"COLUMN" 
= MATCH(B23,D1:R1,0)-1)   /*根据 "DATE" 找出横坐标偏移数*/
"ADDRESS - ROW" 
= "ROW"+ROW(D2)-1 = 3+2+1 = 4
"ADDRESS -COLUMN" 
= "COLUMN" + COLUMN(D2)-1 = 2+4-1=5
"COLUMN 装换成字符" = CHAR(64+5) = "F"

“单元格地址" = "F"&"4" = "F4"

显示F4 的值 : =INDIRECT("F4")

求得
user = “HK”, place = “QTD”, date = “20180701” 时候, 值是 61.

感觉好麻烦……
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在EasyExcel中纵向合并单元格,你可以使用`sheet.merge(int firstRow, int lastRow, int firstCol, int lastCol)`方法。这个方法可以将指定区域内的单元格进行合并。 下面是一个示例代码,演示如何在EasyExcel中进行纵向合并单元格: ```java // 导入必要的包 import com.alibaba.excel.EasyExcel; import com.alibaba.excel.write.builder.ExcelWriterBuilder;import com.alibaba.excel.write.builder.ExcelWriterSheetBuilder; public class ExcelMergeCellsExample { public static void main(String[] args) { // 创建Excel写入器 ExcelWriterBuilder writerBuilder = EasyExcel.write("output.xlsx"); // 创建Sheet写入器 ExcelWriterSheetBuilder sheetBuilder = writerBuilder.sheet("Sheet1"); // 合并第2到第5行的第1列和第2列 sheetBuilder.merge(1, 4, 0, 1); // 写入数据并关闭写入器 sheetBuilder.doWrite(data()); writerBuilder.build().finish(); } private static List<List<String>> data() { List<List<String>> data = new ArrayList<>(); for (int i = 0; i < 10; i++) { List<String> row = new ArrayList<>(); for (int j = 0; j < 2; j++) { row.add("Data" + i + "-" + j); } data.add(row); } return data; } } ``` 在这个示例代码中,我们创建了一个名为"output.xlsx"的Excel文件,并在第一个Sheet上进行操作。我们使用`merge()`方法将第2行到第5行的第1列和第2列进行合并。 注意,在使用此方法之前,确保已经导入了EasyExcel相关的包,并且根据你的实际需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值