0 votes

Obtenir la première cellule qui ne contient pas un certain texte dans les nombres

J'ai un tableau dans Numbers, et j'essaie d'obtenir la valeur de la première cellule qui contient le caractère . Pour ce faire, je voulais utiliser MATCH() mais je n'ai pas eu de chance après avoir réalisé qu'il ne pouvait traverser que deux dimensions. À la place, j'ai créé un tableau sur une autre feuille qui ressemble à ceci :

Table with which rows contain the character

Les chiffres à l'extrême gauche sont les numéros des lignes du tableau contenant les données réelles. Row Contains Cell est exactement ce qu'il semble être : si oui ou non cette ligne contient la cellule désirée. Pour le savoir, j'ai utilisé MATCH() par rang.

Ce que je dois découvrir maintenant, c'est comment trouver quelle ligne n'est pas la mauvaise. Il serait facile de chercher une cellule qui dit not mais j'ai besoin de trouver une cellule dont la valeur de la variable n'est pas égale à not . Je veux trouver le nom de la ligne (ou la valeur de la cellule à gauche, dans la colonne A ) pour cette cellule (dans ce cas, 2 ) et la valeur de la cellule elle-même dans la colonne B .

Quelle serait la formule pour Correct Row y Correct Column compte tenu de ce que je cherche ?

Je sais que des gens l'ont déjà fait pour Excel, mais je n'arrive pas à le faire pour Numbers.

Je suis ouvert aux solutions qui nécessitent Applescript.

1voto

jmindel Points 561

Il s'avère que j'ai trouvé la solution. Cela a nécessité Applescript. Ce que j'ai fait, c'est boucler les lignes et sélectionner les valeurs dans la ligne où "not" n'était pas présent dans la colonne B . Voici l'Applescript que j'ai utilisé via Automator :

on run {input, parameters}

    tell application "Numbers"
        tell table "Calculator 1" of sheet 2 of document of front window
            set aRange to "A2:A22"
            set bRange to "B2:B22"
            set aRows to the rows of range aRange
            set bRows to the rows of range bRange

            set correctRow to -1
            set correctCol to -1

            repeat with i from 1 to count of bRows
                set aCell to "A" & (i + 1)
                set bCell to "B" & (i + 1)

                if value of (cell bCell) is not "not" then
                    set correctRow to value of (cell aCell)
                    set correctCol to value of (cell bCell)
                end if
            end repeat

            set the value of (cell "C2") to correctRow
            set the value of (cell "C4") to correctCol
        end tell

        display dialog "Updated!"
    end tell

    return input
end run

Gardez à l'esprit que les cellules que j'ai utilisées sont spécifiques à ma feuille de calcul, mais de manière générale, cette méthode peut être appliquée à n'importe quelle feuille de calcul 2D. MATCH() fonction.

  1. Créez un tableau a le nom de chaque ligne dans chaque ligne de la colonne d'en-tête, et utilisez le nom de la colonne d'en-tête désirée. MATCH() par ligne de cette manière (voir l'image du tableau dans ma question).
  2. Utilisez cet Applescript pour parcourir en boucle les MATCH() et trouvez la ligne et la colonne correctes. Changez "C2" dans la cellule qui sera votre Correct Row y "C4" dans la cellule qui sera votre Correct Column .
  3. Utilisez le INDEX() pour obtenir la valeur de la cellule et la placer dans une autre cellule, en utilisant les coordonnées que l'Applescript a calculées pour vous.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X