答案 0 :(得分:0)
我建议使用INDIRECT
函数:
如果要使用行标签,请在列中输入以下公式:
=INDIRECT("R" & MOD(ROW()-1, COUNTA(A:A))+2 & "C1",FALSE)
此处A:A指的是存储行标签的列,+ 2指向带有标签的第一行。
在您想要列标签的列中,输入:
=INDIRECT("R1C" & ROUNDDOWN((ROW()-1)/COUNTA($B$1:$D$1),0)+2,FALSE)
这里$ B $ 1:$ D $ 1指的是列标签的范围,+ 2再次偏移到第一列标签。
答案 1 :(得分:0)
假设您的数据位于C7:F12
我们需要三个字段来显示结果系列:Row
,Col
和Data
行:在单元格H7
中输入此公式并复制到最后一条记录:
=IF(EXACT(H6,H$6),1,
IF(EXACT($I7,CHAR(133)),"",
IF($I7=1,SUM(1,H6),H6)))
Col:在单元格I7
中输入此公式并复制到最后一条记录:
=IF(EXACT(I6,I$6),1,
IF(EXACT(I6,CHAR(133)),CHAR(133),
IF(I6=COLUMNS($C$7:$F$12),
IF(H6=ROWS($C$7:$F$12),CHAR(133),1),
SUM(1,I6))))
数据:在单元格J7
中输入此公式并复制到最后一条记录:
=IF(EXACT($I7,CHAR(133)),"",
INDEX($C$7:$F$12,$H7,$I7))
答案 2 :(得分:0)
在用户提供的样本数据之后发布修订后的答案(左前一个答案,因为它可能对其他用户有用)
假设您的数据位于C6:K11
我们需要四个字段来显示结果系列:Row
,Col
,'日期and
时间
行:在单元格M7
中输入此公式并复制到最后一条记录:
=IF(EXACT(M6,M$6),1,
IF(EXACT($N7,CHAR(133)),"",
IF($N7=1,SUM(1,M6),M6)))
Col:在单元格N7
中输入此公式并复制到最后一条记录:
=IF(EXACT(N6,N$6),1,
IF(EXACT(N6,CHAR(133)),CHAR(133),
IF(N6=COLUMNS($C$6:$K$6),
IF(M6=ROWS($B$7:$B$11),CHAR(133),1),
SUM(1,N6))))
日期:在单元格O7
中输入此公式并复制到最后一条记录:
=IF(EXACT($N7,CHAR(133)),"",
INDEX($B$7:$B$11,$M7,0))
时间:在单元格P7
中输入此公式并复制到最后一条记录:
=IF(EXACT($N7,CHAR(133)),"",
INDEX($C$6:$K$6,0,$N7))
可隐藏字段Row
和Col
答案 3 :(得分:0)
以下内容将产生您的结果,但数组公式将影响计算延迟,具体取决于原始数据矩阵中的行数和数据列。
A10中的数组公式¹是
=IFERROR(INDEX(A$2:A$6, MATCH(0, IF(COUNTIF(A$9:A9, A$2:A$6&"")<COUNT($1:$1), 0, 1), 0)), "")
B10中的标准公式是,
=IF(LEN(A10), INDEX($B$1:INDEX($1:$1, MATCH(1E+99,$1:$1 )), , COUNTIF(A$10:A10, A10)), "")
C10中的数据检索是通过
完成的=INDEX(A:J,MATCH(A10,A:A,0),MATCH(B10,$1:$1,0))
根据需要填写。
¹数组公式需要用 Ctrl + Shift + Enter↵完成。一旦正确进入第一个单元格,就可以像任何其他公式一样向下或向右填充或复制它们。尝试并减少对列表的全列引用,这些范围更接近地表示实际数据的范围。数组公式以对数方式计算计算周期,因此将参考范围缩小到最小值是一种好习惯。有关详细信息,请参阅Guidelines and examples of array formulas。