[[20141024111433]] 『COUNTIF INDEX ROW関数』(4949) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『COUNTIF INDEX ROW関数』(4949)

 明細書シート
 弁当代一覧表示シート
 2つのシートを使用して

 明細書シートに
 D10より下に社員コード(約500名ほどいます)
 E10より下に氏名
 F10より弁当代
 G10 出張費
 H10 交通費
 I10・・・
 J10・・・
 とありましてAC10のセルより下に弁当代に金額が入っている人のみ弁当代と出るように
 IF(F10="","","弁当代")としています。
 AI10に作業欄としてIF(AC10="","",AC10&"_"&COUNTIF(AC$10:AC10,AC10))とし弁当代の
 金額がある人に順番をつける作業欄を設けました。

 弁当代一覧表示シートのB7セルより下に弁当代と入力してまして   
 弁当代一覧表示シートのD7に下式
 COUNTIF(明細書!$AC:$AC,$B7)<ROW(A1),"",INDEX(明細書!E:E,MATCH($B7&"_"&ROW(A1), 明細書!$AI:$AI,0)))
という関数にて氏名表示をしようとし、下にペーストしたところ数字が入っていないところから#N/Aとなってしまいました。
 弁当代一覧表示シートのB7セルがエラーみたいなのですがいまいちよくわかりません。
 ご伝授ください。
 よろしくお願いします。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 <明細書>						
 	D	E	F	・・・	AC	AI
 10	1	a	500		弁当代	弁当代_1
 11	2	b	750		弁当代	弁当代_2
 12	3	c	550		弁当代	弁当代_3
 13	4	d	1000		弁当代	弁当代_4
 14	5	e	600		弁当代	弁当代_5
 15	6	f				
 16	7	g	500		弁当代	弁当代_6

 <弁当代一覧表示>						
 	B	C	D			
 7	弁当代		a			
 8	弁当代		b			
 9	弁当代		c			
 10	弁当代		d			
 11	弁当代		e			
 12	弁当代		g			

 表は上記であっていますか?
 こちらでテストしてみましたが、#N/Aが表示されることはありませんでした。

(se_9) 2014/10/24(金) 12:21


 表は合っています。 
弁当代一覧表示のD13行目以降が#N/Aが表示されるのですが。
AC列をG列に持ってくると#N/Aは表示されないのですが。。
なぜでしょうか?

(4949) 2014/10/24(金) 13:18


 > AC列をG列に持ってくると#N/Aは表示されないのですが。。

 これがよくわからないのだけれど。。

 > 弁当代一覧表示のD13行目以降が#N/Aが表示されるのですが。

 弁当代一覧表示のB13以降にも「弁当代」を入力してますか?
 
 
 自分ならこうします。

 ■明細書シート

 AC10: =IF(F10="","",ROW())  下オートフィル
 
 
 ■弁当代一覧表示シート

 D7: =IF(COUNT(明細書!F:F)<ROW(A1),"",INDEX(明細書!E:E,SMALL(明細書!AC:AC,ROW(A1))))

 または

 D7: =IFERROR(INDEX(明細書!E:E,SMALL(明細書!AC:AC,ROW(A1))),"")

 下オートフィル

 B列の「弁当代」は不要。
 何の代金かをはっきりさせるためということなら、B7セルだけに入力。
 
(JKT) 2014/10/24(金) 14:58

 D列で多めに式をフィルコピーしてもやはり#N/Aが表示されることはありませんでした。
 もう一度式をよく確かめてみるかJKTさんから提示された式を使ってみてはいかがでしょうか。
(se_9) 2014/10/24(金) 15:15

 B13から下が数式の空白文字列「""」になっていたら#N/Aになりますね。
 
(JKT) 2014/10/24(金) 15:27

 >B13から下が数式の空白文字列「""」になっていたら

 というところの意味が分からないのですが。。。
(4949) 2014/10/24(金) 15:45

 B列の「弁当代」は手で入力してるんですか?
 数式で表示させているのなら、どんな数式ですか?
 
 
 現状のやり方を極力変えずにということなら

 D7: =IF(COUNTIF(明細書!AC:AC,$B$7)<ROW(A1),"",INDEX(明細書!E:E,MATCH($B$7&"_"&ROW(A1),明細書!AI:AI,0)))

 または

 D7: =IF(COUNT(明細書!F:F)<ROW(A1),"",INDEX(明細書!E:E,MATCH($B$7&"_"&ROW(A1),明細書!AI:AI,0)))

 または IFERROR関数 を使う。

 $B$7 と絶対参照にすること。(B7だけ「弁当代」を入力しておけばいい)
 
 
 参考まで

 AC10: =IF(F10="","","弁当代_"&COUNT($F$10:F10))

 AI列不要。

 D7: =IF(COUNT(明細書!F:F)<ROW(A1),"",INDEX(明細書!E:E,MATCH($B$7&"_"&ROW(A1),明細書!AC:AC,0)))
 
 $B$7 と絶対参照にすること。(B7だけ「弁当代」を入力しておけばいい)
 
(JKT) 2014/10/24(金) 16:02

>D7: =IF(COUNTIF(明細書!AC:AC,$B$7)<ROW(A1),"",INDEX(明細書!E:E,MATCH($B$7&"_"&ROW(A1),明細書!AI:AI,0)))
のACの作業をGに計算式を変更した場合には#N/Aは出ないのですがなぜでしょうか?
(4949) 2014/10/24(金) 16:49

 こっちがした質問に答えてみようとか、
 回答した数式を試してみようとか、
 そんな気持ちはさらさらないようだね。
 
(JKT) 2014/10/24(金) 17:19

 回答していただいた数式は実行しています。
 IFERROR関数の使い方はいまいち分かりませんでしたので実行はしていませんが、
 他の数式で#N/Aが表示されるので解明をしたくて質問ばかりになってしまいました
 すみません。
 >B列の「弁当代」は手で入力してるんですか?
 >$B$7 と絶対参照
 にすることに変更してみました。
(4949) 2014/10/24(金) 17:26

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.