EXCEL问题 用什么函数公式找出每组六个数相差为2的所有组合(即奇连号或偶连号)?

EXCEL问题 用什么函数公式找出每组六个数相差为2的所有组合(即奇连号或偶连号)?
看到你之前回答的一个问题是关于连号函数的!
我想问一下如果改成“相差为2的所有组合(即奇连号或偶连号)”要怎么改?最好是奇连号和偶连号的公式分开列出!
链接里回答的公式是可以统计列出所要统计的连号!但我想要改成统计奇连号或偶连号的公式,
qinglaixia 1年前 已收到1个回答 举报

低调的英俊 春芽

共回答了19个问题采纳率:94.7% 举报

看你的表结构是如何布局的.也就是数据在哪行哪列.
是一个单元格一个数据.(还是一个单元格多个数据,分隔符号又是什么)
最好是给个样表.截个图片上来.

1年前 追问

5

qinglaixia 举报

原来的公式是这样的(想要复制公式过来但是字数超出限制)!这个公式可以统计列出所要统计的连号!但我想要改成统计奇连号或偶连号的公式,但不知道怎么样修改!

举报 低调的英俊

Function lianhao1(rng As range)
Dim r As range, str1$, arr, d As Object
str1 = ""
Set d = CreateObject("Scripting.Dictionary")
For Each r In rng
If Not d.exists(r.Value) Then d.Add r.Value, ""
Next
arr = d.keys
For i = 0 To UBound(arr)
For j = i + 1 To UBound(arr)
If arr(i) = arr(j) - 2 Then
str1 = str1 arr(i) "," arr(j) ";"
ElseIf arr(i) = arr(j) + 2 Then
str1 = str1 arr(j) "," arr(i) ";"
End If
Next j
Next i
str1 = Left(str1, Len(str1) - 1)
lianhao1 = str1
End Function

用这个替换你截图那个函数。注意我写的是lianhao1

qinglaixia 举报

在条件行列中没有数值或者是没有符合条件的数值的时候会出现“#VALUE“的显示!

虽然有点不足,而且奇连号和偶连号也没有分开统计,但基本上已经满足我想要的效果了!

谢谢!

举报 低调的英俊

Function lianhao1(rng As range)
Dim r As range, str1$, arr, d As Object, str2$
str1 = "": str2 = ""
Set d = CreateObject("Scripting.Dictionary")
For Each r In rng
If Not d.exists(r.Value) Then d.Add r.Value, ""
Next
arr = d.keys
For i = 0 To UBound(arr)
For j = i + 1 To UBound(arr)
If arr(i) = arr(j) - 2 Then
If (arr(i) Mod 2) = 1 Then
str1 = str1 arr(i) "," arr(j) ";"
Else
str2 = str2 arr(i) "," arr(j) ";"
End If
ElseIf arr(i) = arr(j) + 2 Then
If (arr(i) Mod 2) = 1 Then
str1 = str1 arr(j) "," arr(i) ";"
Else
str2 = str2 arr(j) "," arr(i) ";"
End If
End If
Next j
Next i
If str2 = "" And str1 = "" Then
lianhao1 = ""
Else
If str1 <> "" Then str1 = "奇数:" Left(str1, Len(str1) - 1)
If str2 <> "" Then str2 = "偶数:" Left(str2, Len(str2) - 1)
lianhao1 = IIf(str1 = "", "", str1 "|") str2
End If
End Function

这个完善了的。用这个吧。

可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.030 s. - webmaster@yulucn.com