Excel两组数值相等但顺序不同时等于1公式应该怎么写?

Excel两组数值相等但顺序不同时等于1公式应该怎么写J5的填充公式应该怎么写?
最新回答
汝嫣澍茵

2024-05-13 01:02:31

通过观察两组数值,可以发现通过简单的加法就可以解决问题,

可以通过在J5列写入公式

如果B5+C5+D5的值跟F5+G5+H5的值相同,就显示1,否则不显示或显示0

之后就是向下拖的事情了,不用弄得那么复杂

追问
那碰见 2 3 7=1 5 6 也会显示1
巷尾青苔

2024-05-13 01:20:45

可以使用VBA中的循环结构和条件判断语句来实现该功能。具体代码如下:
```
Sub CompareData()
Dim i As Long
Dim BCD, FGH '定义变量
For i = 1 To Range("B" & Rows.Count).End(xlUp).Row '遍历每一行数据
BCD = Join(Application.Transpose(Range("B" & i & ":D" & i)), ",") '将B、C、D列的数据组合成字符串
FGH = Join(Application.Transpose(Range("F" & i & ":H" & i)), ",") '将F、G、H列的数据组合成字符串
If SortString(BCD) = SortString(FGH) Then '如果两个字符串排序后相等,输出1;否则,输出0
Range("J" & i).Value = 1
Else
Range("J" & i).Value = 0
End If
Next i
End Sub
Function SortString(ByVal s As String) '定义字符串排序函数
Dim arr() As String
Dim i As Integer
arr = Split(s, ",")
For i = LBound(arr) To UBound(arr) - 1
If arr(i) > arr(i + 1) Then
temp = arr(i)
arr(i) = arr(i + 1)
arr(i + 1) = temp
i = -1
End If
Next i
SortString = Join(arr, ",")
End Function
```
以上代码会从第1行开始遍历每一行数据,对于每一行数据,它将B、C、D列的数据和F、G、H列的数据分别组合成字符串,并对这两个字符串进行排序(通过调用`SortString()`函数),然后判断两个排序后的字符串是否相等。如果相等,则在J列输出1;否则,在J列输出0。
需要注意的是,在某些情况下可能会出现数据类型转换错误,因此代码中使用了`Join()`函数将每一行数据中的B、C、D列和F、G、H列的值组合成字符串。另外,为了避免顺序不同但值相等的问题,我们对这两个字符串进行了排序处理。同时,该函数仅针对当前Worksheet的第1行到最后一行进行数据比较。
乱世浮尘

2024-05-13 01:52:18

你看看是不是想要这样的结果呢?

我污但不色

2024-05-13 00:43:25

=IF(AND(COUNTIF(B5:D5,B5)=COUNTIF(F5:H5,B5),COUNTIF(B5:D5,C5)=COUNTIF(F5:H5,C5),COUNTIF(B5:D5,D5)=COUNTIF(F5:H5,D5)),1,0)
小面包

2024-05-13 00:28:26

用代码转换成升序的三个数后进行比较。