0

私はExcelで数式をいじった経験がほとんどありませんが、マクロを機能させることができない人のために何かを一緒にハックしようとしています。

基本的に、私は一連のデータのソートリストを作成したので、上位4つの項目を取得する必要があります。VLookupまたはIndexを使用するのが最も理にかなっているようですが、テーブルのフォーマット方法(さまざまな理由で変更できません)では、それらを機能させることができないようです(切り替えることができれば)それらの列/行の定義、それから私はできましたが、私ができるかどうか/どのようにできるかわかりません)。とにかく、私はこの長いネストされたifステートメントを一緒にスローしましたが、これでうまくいくはずですが、欠落している要素に対して509エラーがスローされます。運が悪かったので、何が起こっているのかを理解するために考えられるすべてのことを実行しました。

だからここにあります:

=IF(AO2=13, D2, IF(AP2=13, E2, IF(AQ2=13, F2, IF(AR2=13, G2, IF(AS2=13, H2, IF(AT2=13, I2, IF(AU2=13, J2, IF(AV2=13, K2, IF(AW2=13, L2, IF(AX1=13, M2, IF(AY2=13, N2, IF(AZ2=13, O2, IF(BA2=13, P2, "foo")))))))))))))

ここで、A02 ...値はソートリストであり(したがって、インデックス番号13はD2:P2の最大値に対応します)、D2...は対応する値リストです。

誰かがざっと見て、何かが飛び出すかどうかを確認できるかどうか疑問に思いました。それは愚かで構造的であると確信していますが、私はそれを機能させることができません。

PS-私は.xlsxファイルでCalcを使用していますが、違いはないと確信しています。

4

1 に答える 1

0

私が最初に目にするのは、あなたの数式が参照しているということです

IF(AX1=13, M2,

私はあなたがおそらく意味すると確信しているところ:

IF(AX2=13, M2,

しかし、これははるかに効率的にすることができます-これを行う最も簡単な方法の1つ(そして多くあります)はSUMIF関数です。AO2:BA2の1つの値だけが13に等しいとすると、次のように書くことができます。

=SUMIF(AO2:BA2,13,D2:P2)

しかし、私が言ったように、この解決策を得るには多くの方法があります-それはあなたが達成しようとしていることによって異なります...

于 2012-10-26T14:56:49.857 に答える