如何修改excel自动填充?

时间:2015-12-07 22:30:51

标签: excel vba excel-vba autofill formulas

我有时间表。我希望按照图片中显示的方式将行中的数据转换为列(而不是使用公式)。

timetable

第一排(AU,KM,GK,MZ)是教师,第二排是教室。

在B23细胞中,公式为:" =间接(地址(第(Q2),行(Q2)))"
在B24" =间接(地址(列(R2),行(R2)))",
在B25" =间接(地址(栏目(Q3),行(Q3)))",
在B26" =间接(地址(列(R3),行(R3)))"

我想填写星期一列,但是自动填充功能并不像我想的那样 - 下一个公式例如是q5,r5,q7,r7,q9,r9而不是简单地增加这种方式 - > q1,r1,q2,r2,q3,r3,q4,r4,q5,r5等。

after autofill - problem

如何解决?任何帮助都会得到满足。

1 个答案:

答案 0 :(得分:1)

在B13:

dat <- dd2
(origins <- ave(seq_along(rownames(dat)), dat$seq, FUN = function(x) {
  ## fix for duplicates
  dat$grp[x] <- dat$grp[x] + cumsum(duplicated(dat$grp[x]))
  gr <- dat$grp[x] - 0:(length(dat$seq[x]) - 1)
  ave(dat$grp[x], gr, FUN = min)
}))
# [1]  1  1  1  2  2  2  1  2  3  1  3  3  3  4  5  5  6  6  7  7  7  5  7  8  5  8  8  8  9 10

par(mar = c(5, 5, 2, 5), las = 1, bty = 'n', xpd = NA)
plot(as.numeric(dat$seq), dat$grp, col = origins, pch = 16,
     cex = 3, xaxt = 'n', yaxt = 'n', xlab = 'seq', ylab = '')
axis(1, at = 1:8, letters[1:8], lwd = 0)
axis(2, at = 1:10, paste0('time ', 1:10))
axis(4, at = 1:10, rep_len(palette(), 10))

在B14:

=IFERROR(INDEX($7:$7,MATCH(A13,$5:$5,0)),"")

然后复制并填写两个。