![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
毎月の会員来店記録管理を以下のような表でしています。
|A| B | C | D | E | F | G | ~AK
--+--+--------+--------+--------+--------+----------+----------+--------
2| | NO | 氏名 | 入会日 |来店累計|直近来店日|02/01(火)|02(水)
--+--+--------+--------+--------+--------+----------+----------+--------
3| |A-04-100|○山△子|04/10/10| 25回 | 02(水) | (空欄) | 12:55
--+--+--------+--------+--------+--------+----------+----------+--------
4| |A-04-101|□村×代|04/10/11| 12回 | 01(火) | 10:25 | (空欄)
--+--+--------+--------+--------+--------+----------+----------+--------
G2~AK2はF2に1を足していき、29日以降はMONTH関数の判定で""となっています。
F列およびG2~AK2の書式設定は「dd aaa」となっています。
B~D列はシート「会員名簿」から参照しています。
E列は=IF(D3<>"",COUNT(G3:AK3),"")等として求めています。
G~AK列は来店時間を手入力しています。
以上からF列の値を求めたいのですが、次のINDEX関数では領域番号に何を指定
すれば良いのか判りませんでした。
=INDEX($G$2:$AK$2,1,?)
まるでHLOOKUP関数の逆のようですが、なにか良い方法があればお教え下さい。
No.2ベストアンサー
- 回答日時:
こんばんは。
No.1さんの配列数式でできませんか?
試してみましたが、こちらではできましたけど・・。
>「#VALUE!」が返ってきてしまいました。
配列数式になっています?
{ }が数式の前後についていなければ配列数式になっていませんよ。
{ } ←は手入力ではダメです。
もう一度、{ }のない数式をコピーして貼り付けてください。
<形式を選択して貼り付け>-<テキスト>
↓
そのあと数式バーにカーソルを置いて、Ctrl + Shift + ENTER で確定
↓
自動的に { } が前後に入ります。←コレが配列数式です。
---
◆ついでに配列数式を使わない方法として、
F3セルに↓ではどうでしょうか?
(F列も日付形式にしておいてくださいね)
-----------------------------------------
=LOOKUP(MAX(G3:AK3)+1,G3:AK3,$G$2:$AK$2)
-----------------------------------------
この回答への補足
配列数式の説明、ありがとうございます。
入力については問題なくできていました。
エラーの原因はANo.4のDoragonFangさんのご指摘の
通りでした。
結局、29日以降のMONTH関数の判定を活かせるのは
AloneAgainさんのLOOKUP関数とANo.3のDoragonFang
さんのINDEX関数でした。
今回はAloneAgainさんのLOOKUP関数を利用させて
頂きました。ありがとうございました。
補足に書いてしまいましたが、今回は
AloneAgainさんのLOOKUP関数を利用させて
頂きました。ありがとうございました。
No.4
- 回答日時:
ANo.3です。
追記です。>お教え頂いた配列数式を入力してみましたが、「#VALUE!」が
>返ってきてしまいました。
題意にあるように、29日以降、””になっているからでしょう。
配列数式は範囲内をすべて計算しようとしますが、29日以降の2行目が空欄("")なので、文字列と解釈し、計算できないと判断して、エラーになるのではないでしょうか。
No.3
- 回答日時:
INDEX関数を使うなら、
=INDEX(G$2:AK$2,1,MATCH(MAX(G3:AK3),G3:AK3,1))
という式で出来ると思います。
MATCH関数で入力されている時間の最大値を探し、
その位置を列位置として返しています。
もっとも、ANo.2さんのlookupの方が簡単ですが・・。
MATCH関数についてはヘルプで使用例も読んで
いたのですが、すっかり失念していました。
ANo.4のご指摘も含めてありがとうございました。
いろんなやり方があるものだと関心しました。
No.1
- 回答日時:
配列数式を使ってはどうでしょうか。
INDEXを使う代わりに、F3に
=MAX((ISNUMBER(G3:AK3))*(G$2:AK$2))
と入力して、Ctrl+Shiftを押しながらEnterを押します。
(この押し方は配列数式を入力する方法です。数式バーには{=MAX((ISNUMBER(G3:AK3))*(G$2:AK$2))}と表示されます。)
これをF4から下に必要なだけコピーします。
F3から下の書式は dd aaa にしておきます。
上に書いた式の意味は、「G3:AK3の中の数値セルを1、非数値セルを0とし、これをG$2:AK$2の各セルとそれぞれ掛け算し、その中で最大のものを求めなさい」という意味です。
この回答への補足
早速のご回答、ありがとうございます。
お教え頂いた配列数式を入力してみましたが、「#VALUE!」が
返ってきてしまいました。
>G3:AK3の中の数値セルを1、非数値セルを0とし、
ですが、ISNUMBER関数の返値はTRUEかFALSEですので、
0、1に置き換える必要があると思うのですが、IF関数
ではうまくいきませんでした。
考え方自体は的を得ていると思いますので、自分でも
更に試行錯誤してみたいと思いますが、もし良い案が
ありましたらお教え願います。
ANo.2のAloneAgainさんとANo.3のDoragonFangさんの
ご指摘で表の一部修正で利用可能なことが判りました。
未だISNUMBER関数の返値(TRUEかFALSE)がなぜ計算に
利用できるのかは判らずじまいですが、配列数式の
利用法を含めて新しいEXCELの使い方をご指導頂けて
大変ありがたかったです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセルでエラーを無視して一番左側のセルの値を返したい 2 2023/07/27 13:06
- Excel(エクセル) IFERROR、SMALL関数について 2 2022/08/22 23:40
- Excel(エクセル) ある数値に対して、値を返す数式についてです 2 2022/09/13 22:06
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Visual Basic(VBA) VBA 改行コードの取り方 1 2022/03/22 14:14
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DATE関数で現在の年齢を出した...
-
エクセルでCtrl+Tでテーブルの...
-
REGEXREPLACE関数について、
-
エクセルのクイックアクセスツ...
-
在庫管理表に使うエクセルの関...
-
職場の人から聞かれており、こ...
-
下記マクロでMsgBox "空白です...
-
Excel関数-文字列で自動作成さ...
-
エクセルでバーコード作成し使...
-
【マクロ】for next構文について
-
ユーザー定義関数をアドイン登...
-
エクセルの関数について教えて...
-
エクセルで表
-
PDFの請求明細をエクセルにしたい
-
Excelデータをコピペして、ペー...
-
スプレッドシート、Excelでの数...
-
エクセルで特定の範囲内から小...
-
Excelで50個のセルに同じ文字を...
-
エクセルで会社の従業員のデー...
-
【マクロ】関数をセルに入力す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報