アプリ版:「スタンプのみでお礼する」機能のリリースについて

=IF(F34=0,0,明細書20!$S$50) という式があります。
この式を、下の行方向に

=IF(F34=0,0,明細書21!$S$50)
=IF(F35=0,0,明細書22!$S$50)

途中の76行を略します

=IF(F112=0,0,明細書99!$S$50)
=IF(F113=0,0,明細書100!$S$50)

と、作成したいのですが、簡単にするにはどうしたらよいでしょうか?
参照先のシート名(明細書)のNoさえ変わらなければフィルドラッグできるんですが
困っております。

A 回答 (9件)

あ、ミスった上にカブっちゃいましたね。


最短なんて書いてしまったので(^^;)、訂正がてら。

(1)数式が必要な範囲の先頭行から最下行迄を選択して
="=IF(F"&row(a34)&"=0,0,明細書"&row(a20)&"!$S$50)"
この数式をCtrl+Enterで確定
(2)そのままの選択範囲をコピー→値貼付け
(3)そのままの選択範囲に対して、
[データ]メニュー[区切り位置]で
[区切り位置指定ウィザード]を表示して
何も指定しないで[完了]

失礼しました
    • good
    • 0
この回答へのお礼

ありがとうございます。
こうやればフィルドラッグも必要がないんですね。
最短の方法ですね、感謝いたします。

お礼日時:2009/03/11 14:20

こんにちは



(1)先頭のセルに数式
="=IF(F"&row(a34)&"=0,0,明細書"&row(a21)&"!$S$50)"
(2)上のセルを必要なだけフィルまたはコピペ
(3)そのままの選択範囲をコピー→値貼付け
(4)そのままの選択範囲に対して、
[データ]メニュー[区切り位置]で
[区切り位置指定ウィザード]を表示して
何も指定しないで[完了]

たぶん、手作業での最短手順かと。
    • good
    • 0

>=IF(F34=0,0,明細書20!$S$50)


>=IF(F34=0,0,明細書21!$S$50)
>=IF(F35=0,0,明細書22!$S$50)
書き間違いだとは思いますが =IF(F35=0,0,明細書21!$S$50) になるとして考えます

INDIRECTを使わないので一方通行ですし、面倒です。
対象のセルで
1. ="=IF(F"&ROW(A34)&"=0,0,明細書"&ROW(A20)&"!$S$50)"
2. 下へオートフィル
3. コピー
4. 形式を選択して貼り付け ●値
5. [Ctrl]+[H] 置換 ( = → =)
 (イコール)を(イコール)に置換します
参考まで
    • good
    • 0
この回答へのお礼

あ、書き間違いしてましたね、すみません。
No6の方と同じ方法ですね、ありがとうございました。

お礼日時:2009/03/11 14:17

置換を使う方法以外では、



1.変化させたい部分だけROW関数にして文字列作成
2.コピー、形式を選択して貼り付けで上書き
3.データ、区切り位置

もあるかもしれません。
具体的には、

1.
A1
="=IF(F"&ROW(A34)&"=0,0,明細書"&ROW(A20)&"!$S$50)"
下方向フィルコピー

2.
A列コピー
形式を選択して貼り付け:値

3.
A列を選択したまま
データ
→区切り位置
→OK
    • good
    • 0
この回答へのお礼

なあるほどぉ~!!
これは作業列を設けなくともいいやり方ですね、すばらしい!

さっそく残りをこの方法でやっつけました。
ありがとうございます。
  (o。_。)oペコッ

お礼日時:2009/03/11 14:16

そんな面倒なことしないで



お得意のVBAでさっくと。。(^^;;;
 

 
    • good
    • 0
この回答へのお礼

こんにちは、onlyromさま。
いったいいくつのお顔をおもちなのでしょう?
VBAだとテストしたりなにやらでかえって時間がかかりそうな気がしましたので手作業したのですが、やっぱりVBAですかねぇ。
ありがとうございます。

お礼日時:2009/03/11 11:37

どこかのセル(例えばD1&E1&F1)にそれぞれ(とりあえず文字列として)


=IF(K34
=0,0,明細書21
!$S$50)
と分けて入力して、=IF(K34と=0,0,明細書21は下向きにフィルドラッグ、$S$50)はコピーペーストしておく。
隣のセル(例えばG1)に数式
=D1&E1&F1
を入力して下向きにフィルドラッグする。
結果を一旦メモ帳に張り付けて、それをコピーしてまたエクセルに張り付ける・・・・・・あぁ~でもこれも結構面倒かもしれん・・・・・
    • good
    • 0
この回答へのお礼

やっぱりこの方法しかないですね。
自分でも思いついて、今作業を終了したところでした。
自己解決しましたと締め切ろうとおもったところ同じ方法をkuma56さんがお答えでした。
ありがとうございます。

お礼日時:2009/03/11 11:17

いや、単純に「計算用の列」を一列造れば済む話なんじゃ?



="明細書"&ROW(A21))&"!S50"

こういうのを例えばZ列に作っておき、ドラッグすると「明細書21!S50」・・・
というセルが出来ますよね。後はこいつをINDIRECTで直接参照すれば
良いんじゃないかと。どのみち「セルの内容を参照して参照先を変える
というのは、INDIRECT関数を使うしかないんですから、計算途中を見る
には、こういう方法しかないかと。
    • good
    • 0
この回答へのお礼

ありがとうございます。
まっとうな方法ではINDIRECTしかないのは存じておりましたので他に裏技がないかと質問いたしました。
今回はとりあえず自己解決いたしました。
(けっこう面倒でしたが)

お礼日時:2009/03/11 11:19

NO1です。


開始シート番号が誤っているみたいですので訂正します。
=IF(F34=0,0,INDIRECT("明細書"&ROW(A20)&"!S50"))
    • good
    • 0

一例です。


=IF(F34=0,0,INDIRECT("明細書"&ROW(A21)&"!S50"))をフィルドラッグで如何でしょうか。
    • good
    • 0
この回答へのお礼

ありがとうございます。
出来ればINDIRECT以外の方法をとりたいのです。
参照元から参照先をトレースできる状態にしておきたいのです。

お礼日時:2009/03/11 10:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!