【发布时间】:2014-05-17 22:07:59
【问题描述】:
我一直在努力尝试获得 40 个独特的输出。我已经截取了我基本上想要了解的内容。
截图:
我一直在使用INDIRECT 和CEILING 命令,但无法正常工作。
有人可以帮忙解释一下吗?
【问题讨论】:
我一直在努力尝试获得 40 个独特的输出。我已经截取了我基本上想要了解的内容。
截图:
我一直在使用INDIRECT 和CEILING 命令,但无法正常工作。
有人可以帮忙解释一下吗?
【问题讨论】:
这行得通:
="the brown " & INDEX(A:A,CEILING(ROW()/4,1)) & " jumped over the "& INDEX(B:B,(MOD(ROW()-1,4)+1))
它使用CEILING 以及除以四来重复 A 列中的每个项目 4 次。它使用MOD 在四个数字之间循环。
您可以使用COUNTA 将其推广到 B 列中的许多值:
="the brown " & INDEX(A:A,CEILING(ROW()/COUNTA(B:B),1)) & " jumped over the "& INDEX(B:B,(MOD(ROW()-1,COUNTA(B:B))+1))
【讨论】:
我不确定是否有办法用公式来做到这一点。初学者试试这个 vba:
Dim listA As Range
Dim listB As Range
Set listA = Range("A1", Range("A1").End(xlDown))
Set listB = Range("B1", Range("B1").End(xlDown))
y = 1
For Each cellA In listA
For Each cellB In listB
Cells(y, 4).Value = "blah " & cellA.Value & ", blah " & cellB.Value
y = y + 1
Next
Next
这假设您的第一个变量列表从第 1 行开始在 A 列中,没有间隙,并且您的第二个变量列表从第 1 行开始在 B 列中,没有间隙。它遍历这些范围内的所有值 - A 列值的外部循环和 B 列值的内部循环。从第 1 行开始将每个唯一组合输入到 D 列中。
【讨论】:
我做了一些实验,看看能否找出一个公式……最终我放弃了,并在 MrExcel 上找到了this solution,感谢 Tusharm。他的位置是第三位;他说将其粘贴到 F1 并复制下来,直到得到空白结果。
=IF(ROW()-ROW($F$1)+1>COUNTA(A:A)*COUNTA(B:B),"",INDEX(A:A,INT((ROW()-ROW($F$1))/COUNTA(B:B)+1))&INDEX(B:B,MOD(ROW()-ROW($F$1),COUNTA(B:B))+1))
【讨论】: