Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2110|回复: 3

[已解决]数组计算交集比字典快 这个代码看不懂请解析

[复制链接]
发表于 2017-2-20 13:58 | 显示全部楼层 |阅读模式

数组计算交集比字典快   这个代码看不懂请解析


Sub 请解析这个代码()

An = [a65536].End(3).Row
Bn = [h65536].End(3).Row
a = Range("a11:g" & An)
b = Range("h11:n" & Bn)
ReDim ar(1 To UBound(a), 1 To 6)
Dim c(1 To 15, 1 To 15, 1 To 15, 1 To 15, 1 To 15, 1 To 15)

For i = 1 To UBound(a)

    c(a(i, 1), a(i, 2), a(i, 3), a(i, 4), a(i, 5), a(i, 6)) = 1

'这一句c(a(i, 1), a(i, 2), a(i, 3), a(i, 4), a(i, 5), a(i, 6)) = 1 究竟什么意思,有什么用


Next

For i = 1 To UBound(b)
    If c(b(i, 1), b(i, 2), b(i, 3), b(i, 4), b(i, 5), b(i, 6)) = 1 Then
        N = N + 1
        For j = 1 To 6
            ar(N, j) = b(i, j)
        Next
    End If

Next
[u11].Resize(N, 6) = ar
End Sub

最佳答案
2017-2-22 16:28
c是一个六维数组,可以理解为宇宙中有六个星球,飞船分别距离星球最大距离为15个单位,最小为1个单位。六个数据可以定位飞船的唯一位置,姑且编号为1(当然也可以为任何数),假定一切静止。数万年过去,发现1号飞船,则测得六个数据和原来必然一致(交集)

数组计算交集比字典快 这个代码看不懂请解析.rar

19.15 KB, 下载次数: 10

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2017-2-22 16:28 | 显示全部楼层    本楼为最佳答案   
c是一个六维数组,可以理解为宇宙中有六个星球,飞船分别距离星球最大距离为15个单位,最小为1个单位。六个数据可以定位飞船的唯一位置,姑且编号为1(当然也可以为任何数),假定一切静止。数万年过去,发现1号飞船,则测得六个数据和原来必然一致(交集)

评分

参与人数 1 +6 收起 理由
laoau138 + 6 来学习

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2017-2-23 18:19 | 显示全部楼层
dsmch 发表于 2017-2-22 16:28
c是一个六维数组,可以理解为宇宙中有六个星球,飞船分别距离星球最大距离为15个单位,最小为1个单位。六个 ...


http://www.excelpx.com/thread-427999-1-1.html


VBA实现自动循环选择性粘贴多行公式数据   最关键B18微调按钮

回复

使用道具 举报

发表于 2017-2-23 19:23 | 显示全部楼层
dsmch 发表于 2017-2-22 16:28
c是一个六维数组,可以理解为宇宙中有六个星球,飞船分别距离星球最大距离为15个单位,最小为1个单位。六个 ...

可以形象地这么想像,但实际上,只要有三个不在一个平面上的星球就可以确定宇宙飞船的唯一位置了,因为我们认识的宇宙还是三维的。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-5 01:04 , Processed in 0.283614 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表